ارث بری c++: چرا اینجا اررور میده؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

ارث بری c++: چرا اینجا اررور میده؟

+1 امتیاز

	

class A
{
    public:
    int h=5;

};
/////PRIVATE
class B:A
{
public:
    h=45;//does not name a type
    B::h=45;//Class B does not name a type
   int B::h=45;//Extra Qualification B:: on member h
   k(){h=45;//ok}
};

 

 

سوال شده آبان 11, 1398  بوسیله ی amiro (امتیاز 58)   2 7 11
ویرایش شده آبان 11, 1398 بوسیله ی amiro
خط ۱۳ ارورش یعنی چی؟
بعد چرا نمیشه h رو تو بدنه کلاس بی مساوی ۴۵ گذاشت ولی تو تابع () int k میشه ؟؟خط ۱۱

1 پاسخ

+1 امتیاز
سلام.هیچ وقت توی بدنه کلاس مقدار دهی اولیه نکنید .مکان صحیح برای مقداردهی اولیه متغیرهای عضو کلاس constructor خود کلاس هستش.
پاسخ داده شده آبان 11, 1398 بوسیله ی farnoosh (امتیاز 8,362)   20 44 59
اره اینو خودمم فهمیدم ولی دلیلش چیه چرا اجازه نمیده
توضیح داد فرنوش .شما اگر قصد داری مقداردهی کنی زمانیکه متغیر را تعریف می کنی همونجا مقدار بده دوتا اولی که تعریف متغیر نیست سومی هم متغیر عضو h وجود داره ولی مجدد دارید تعریفش می کنید
...