私は現在C++の継承について学んでいるので、この質問があいまいな場合は、事前に謝ります。C++継承:さまざまな派生オブジェクトのベース属性
このシナリオを実装する:
スーパークラスは、任意の色とすることができる色属性を有する(整数で表されるのは、色を仮定する)。
このスーパークラスの初期化が赤色であるとします。
また、赤色を共有するサブクラスの異なるオブジェクトを初期化する予定です。私の質問がある
、私は赤に、この属性の色(またはそのことについては任意の色)を初期化することができますどのような方法があり、それが代わりに設定するのでは、サブクラスだと、それは自動的にオブジェクトが継承されるだろうこれらのオブジェクトのいずれかを初期化するたびに赤色に属性がありますか?
ここでも基本的な概念が不足しているとお詫び申し上げますが、私はこれについてオンラインで何かを見つけることはできません。要求ごと
擬似コード:
スーパークラスコード:
class Shape {
int color;
Shape::Shape(int c) : color(c) { } //constructor
}
サブクラスのコードは:
class Square {
int length, width;
Square::Square(int l, int w, int c)
: length(l),
width(w),
color(c)
{ }
}
class Circle {
int radius;
Square::Square(int r, int c)
: radius(r),
color(c)
{ }
}
私が言うことをしようとしていることであることの両方の正方形とサークルは同じ色を持つ必要があります。とにかく(このクラスはスーパークラスからですか?)この色(たとえば赤)を宣言するために、両方のシェイプで同じ色が設定されますか?次のように以前のC++ 11に
基本クラスにcolor属性があり、派生クラスにもcolor属性がありますか? MVCEが役に立ちます。 –
スーパークラスから明らかに継承されているcolor属性はありません – Logan
あなたの考え方を擬似コードの例で投稿してください。あなたは "属性"という言葉を使用していますが、 "属性"(メンバー変数、仮想メンバー機能付きのデフォルト実装など)を実装する方法は非常に多数あります。また誰が初期化を行っていますか? (また:initialize *は毎回毎回値を設定していますが、わずかに構文が異なります) – iAdjunct