私はOOPを学習していますが、問題が発生したようです。
CODE:マルチレベル継承メンバアクセス
class line {
protected:
double a;
public:
line() {a = 1;}
line(double var1) {a = var1;}
};
class rectangle: private line {
protected:
double b;
public:
double area() {return a * b;}
rectangle():line() {b = 1;}
rectangle(double var1):line(var1) {b = var1;}
rectangle(double var1, double var2):line(var1) {b = var2;}
};
class parallelepiped: private rectangle{
private:
double c;
public:
double volume() {return area() * c;}
void print() { cout << "Parallelepiped rectangle information:" << endl;
cout << "a = " << a << ", b = " << b << ", c = " << c << endl;
cout << "Volume: " << volume() << endl << endl;}
parallelepiped():rectangle() {c = 1;}
parallelepiped(double var1):rectangle(var1) {c = var1;}
parallelepiped(double var1, double var2):rectangle(var1) {c = var2;}
parallelepiped(double var1, double var2, double var3):rectangle(var1, var2) {c = var3;}
};
問題:エラー: '二重線::'(プリント内で保護されています)。
「a」を印刷する方法はありますか、学習者の一般的なヒントはありますか?
一般的なOOPまたはC++を習得していますか?それに基づいて私はいくつかの助言を与えることができます。 –
'line :: a;'を使用して 'rectangle'クラスのスコープ内にあるか、' private'継承を全く使わない –
なぜあなたは私的継承を使用していますか? – Claudio