Re: [問題] 關於繼承的問題
※ 引述《QQ29 (我愛阿蓉)》之銘言:
hi 你試著把程式寫成以下的形式
為啥這樣可以印 compile沒有錯誤呢?
#include <iostream>
using namespace std;
class Caaa
{
protected:
int num;
public:
Caaa(){num=5;}
void show()
{
//return num;
cout << "num = " << num << endl;
}
};
class Cbbb :protected Caaa
{};
class Cccc :public Cbbb
{
public:
void QQ(){show();}
};
int main()
{
Cccc c;
c.QQ();
system("PAUSE");
return 0;
}
原因就是Cccc看到的show是protected
而protected 在自己class裡面 需要透過member function才能呼叫
所以我就透過QQ()了 (跟private一樣)
------------------------------------------------------
我剛剛試了在QQ()裡面寫cout << "num = " << num << endl;
這樣反而可以印的出來,所以說protected的data member跟member function
被呼叫的方法其實不是一樣的?如果是data member可以直接在Cccc存取,
而如果是function的話,則必須要像QQ大 所講的,用member fuction呼叫他才能使用
是這樣嗎?是這樣的話我就瞭解了,只是覺得好怪喔~~ 謝謝你的回答:)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.207.187
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.119.19.39
推
05/22 16:22, , 1F
05/22 16:22, 1F
討論串 (同標題文章)