我必須繼承基類的受保護成員並保持派生也保護。例如:基類具有set()和get()保護,並且它們也應該在派生中受到保護。 問題是因爲它們在派生中受到保護,所以如何訪問。訪問受保護的繼承
其實我是想這樣做:
#include<iostream>
#include<string>
using namespace std;
class Animal
{
protected:
string name;
void setName(string a){ name = a; }
void getName(){ cout << name << endl; }
};
class Cat :public Animal
{
public:
Cat(string dc){
setName(dc);
}
void printName(){ getName(); }
};
class Dog :public Animal
{
public:
Dog(string dc2){
setName(dc2);
}
void printName(){ getName(); }
};
int main()
{
Cat c("Mano");
c.printName();
Dog d("Tommy");
d.printName();
system("pause");
return 0;
}
你想讓它們在派生類中受到保護,但問題是它們在派生類中受到保護?你究竟在做什麼?也許一個小代碼示例會有所幫助。 – juanchopanza
如果你在基類中創建一個'protected'成員,你爲什麼要在派生類中將它'public'?如果你願意,在基類本身中創建成員'public'! –
我試圖用構造函數設置值,然後我嘗試了一個公共函數,但這個東西沒有幫助。很多錯誤。 – affanBajwa