نقل قول نوشته شده توسط tami64 مشاهده تاپیک
سلام خدمت دوستان عزیز. پست های قبلی رو خوندم یا اشتباه جواب داده شده و یا ناقص.یک توصیه به هیچ عنوان از کتاب های فارسی برای یادگیری شی گرا استفاده نکنید و از مرجع انگلیسی استفاده کنید.1: نمیتوانیم از
کلاس
Abstract
نمونه (شیئ) ایجاد کنیم. ولی از
Interface میشه.
2: کلاس Interface میتونه multiple-inherited بشه ، یعنی مثلا کلاس گربه از کلاس اینترفیس حیوان و کلاس اینترفیس چهار پایان ارث بری میکنه ولی کلاس ابسترکت نمیتونه
multiple-inherited
بشه.
3: در Interface نمیتوتن data member داشته باشیم یعنی مثلا یک متغییر اینتیجر در private یا public. ولی در Abstract این امر امکان داره.
4: در Interface نمیتوانیم پیاده‌سازی متدی کنیم ولی در Abstract میتوانیم. مثلا یک تابع برای جمع دو عدد.5:در Abstract حداقل باید یک pure virtual یا به عبارت دیگر یک Abstract یا به عبارت دیگر تابع virtual که مساوی 0 هست داشته باشیم و بقیه توابع میتواند نرمال باشد. ولی در Interface همه توابه باید pure virtual و تابع destructor باید virtual باشد نه pure virtual یعنی مساوی صفر نکنیم و وجودش ضروری هست.

class test   //  interface class{  public:    virtual ~test(); // virtual function      virtual void method_1(int x) = 0; // pure virtual function || Abstract Member Function      virtual void method_2(int y) = 0; // pure virtual function || Abstract Member Function      virtual void methpd_3() = 0;      // pure virtual function || Abstract Member Function  };class test  //  abstract class { public:  virtual void method_1() = 0; // pure virtual function || Abstract Member Function  virtual void method_2();     // Virtual function. Non Abstract Member Function1   void method_3();             // Non Abstract Member Function1 };
اگر میشه یه کتاب در ازین زمینه با زبان اصلی معرفی کنید ممنون می شم