私は継承(C ++でのテスト)の概念を理解しようとしています。ここからの引用:http://en.wikipedia.org/wiki/Inheritance_ (object-oriented_programming )
「オブジェクト指向プログラミング(OOP)では、継承は、プログラミング言語のサポートに応じて、既存のオブジェクトのコードを再利用するか、既存のオブジェクトからサブタイプを確立するか、またはその両方を行う方法です。」
次に、このコードをテストしました。
class Person
{
public:
int ii;
Person():ii(0){}
};
class Student : public Person
{
};
class Student1 : public Person
{
};
それで、
Person p;
Student s;
Student1 s1;
s.ii = 222;
p.ii = 333;
cout << s.ii << endl; // prints 222
cout << s1.ii << endl; // prints 0
cout << p.ii << endl; // prints 333
結果に示されているように、各サブクラスには独自のバージョンのii変数があり、それぞれが基本クラスからコピー値を取得します。したがって、1つを変更しても、他には影響しません。
それは私が最初に頭に浮かんだことではありません。基本クラスから継承する場合、すべてのサブクラスが同じ属性のインスタンスを継承すると思いました。各サブクラスは、独自のバージョンを保持する必要はありません。そして、それは再利用とスペース節約の利点を利用することができます。
私は何かを誤解していますか?そして、私が正しければ、他のOOP言語にも当てはまりますか?(静的変数を使用して自分の考えに到達できることはわかっていますが、それは私が話していることではありません)