آبجکتیو-سی: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Ebrambot (بحث | مشارکت‌ها)
جز ‍پاک سازی فاصله های مجازی نامفید
Ebrambot (بحث | مشارکت‌ها)
جز ربات:پاک‌سازی فاصله‌های مجازی نامفید
خط ۸۳:
</source>
 
یکی از موارد قابل توجه instanceMethod2WithParameter است. در آبجکتیو-سی امکان استفاده از پارامتر‌دهیپارامتردهی بانام وجود دارد که در حال زیاد بودن تعداد پارامترها کد را تمیز نگاه می‌دارد. ولی در سی++ چنین امکانی وجود ندارد.
 
مقادیر بازگشتی می‌توانند انواع سی، یک اشاره‌گر به یک شی آبجکتیو-سی و یا یک اشاره‌گر به انواع خاص مانند *NSArray یا *NSImage یا *NSString باشد. مقدار بازگشتی پیش‌فرض نوع عمومی آبجکتیو-سی به نام id است.
خط ۸۹:
=== پیاده‌سازی ===
 
واسط تنها روش دسترسی به کلاس را بیان می‌کند و نه خود متد‌هامتدها را. کد اصلی در قسمت پیاده‌سازی نوشته می‌شود. این فایل‌های پیاده‌سازی معمولاً با پسوند m. خاتمه می‌یابند.
 
<source lang="objc">
خط ۱۶۶:
=== پروتکل‌ها ===
 
پروتکل‌ها در زبان آبجکتیو-سی برای معرفی مفهوم وراثت چندگانه به وجود آمدند. در این زبان وراثت چندگانهٔ توصیفات وجود دارد ولی وراثت چند‌گانهٔچندگانهٔ پیاده‌سازی‌ها وجود ندارد. این همان مفهومی است که در ++C با وراثت از یک کلاس abstract و در جاوا به عنوان مفهوم interface وجود دارد.
 
در این زبان دو نوع پروتکل وجود دارد ad-hoc protocol که informal protocol نیز خوانده می‌شود و formal protocol
خط ۲۰۷:
== تفاوت‌های اساسی با سی++ ==
 
* سی++ شامل کتابخانه‌ها و استاندارد‌هاییاستانداردهایی برای برنامه‌سازی شی‌گرا، برنامه‌سازی عمومی است. در حالی که آبجکتیو-سی تنها یک لایه برای برنامه‌سازی شی‌گرا به زبان سی اضافه می‌کند.
 
* آبجکتیو-سی امکانات reflection برای برنامه‌نویس به وجود می‌آورد که در زمان اجرا آدرس بعضی توابع معلوم می‌گردد حال آن‌که در سی++ امکانات reflection وجود ندارد. یعنی آبجکتیو-سی از سی++ امور بیشتری را در زمان اجرا تعیین می‌کند که باعث انعطاف بیشتر زبان می‌شود ولی سرعت اجرای آن را کاهش می‌دهد.