#include <iostream>
#include <string>
using namespace std ;
enum COLOR { Green, Blue, White, Black, Brown } ;
class Animal {
public :
Animal() : _name("unknown") {
cout << "constructing Animal object "<< _name << endl ;
}
Animal(string n,COLOR c) : _name(n),_color(c) {
cout << "constructing Animal object "<< _name << endl ;
}
~Animal() {
cout << "destructing Animal object "<< _name << endl ;
}
void speak() const {
cout << "Animal speaks "<< endl ;
}
void move() const { }
private :
string _name;
COLOR _color ;
};
class Mammal:public Animal{
public:
Mammal(string n,COLOR c):Animal(n,c){
cout << "constructing Mammal object "<< _name << endl ;
}
~Mammal() {
cout << "destructing Animal object "<< _name << endl ;
}
void eat() const {
cout << "Mammal eat " << endl ;
}
};
我剛剛開始從java過渡到C++今天,我正在練習一些面向對象的編碼,以瞭解差異。關於繼承在c + +(公共和私人)困惑
在上面的代碼中,我無法訪問哺乳動物類的_name。
哺乳動物類沒有繼承私人屬性嗎?在這種情況下,我是否必須爲每個繼承重新創建這些屬性?
您的標題與您的身體不符 - 您是否確實意味着您對C++中的繼承感到困惑? –
是的,我編輯它 –
私人是私人的。如果您希望成員變量在派生類中可見,請將其放入「protected」節中。 – BitTickler