#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