私は継承(C++でのテスト)の概念を理解しようとしています。 "オブジェクト指向プログラミング(OOP)では、継承は、既存のオブジェクトのコードを再利用する方法、または既存のオブジェクトからサブタイプを確立する方法です。プログラミング言語のサポートによって、継承は既存オブジェクトのコードを再利用する方法です。結果に示されるように、サブクラスの各々を次にサブクラスがC++の基本クラスから継承するものは何ですか?
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変数の独自のバージョンを持ち、それぞれが基本クラスからコピー値を取得します。したがって、変更した場合、他のものには影響しません。
これは私が最初に気にしたことではありません。私は基本クラスから継承すると、すべてのサブクラスが同じ属性のインスタンスを継承すると考えました。各サブクラスは独自のバージョンを保持する必要はありません。そして、それは再利用と省スペースという利点があります。
私は何かを誤解していますか?私が正しいとすれば、他のOOP言語にも当てはまりますか? (私は私の考えに到達するために静的変数を使用することができます知っているが、それは私が何を言っているかではありません)
静的変数は、すべてのインスタンスで何かを共有したい場合に使用します。 – chris
まずクラスが何であるかを理解する必要があります。クラスは*タイプ*です。 C++では、すべてのオブジェクトは特定の型であり、変数はオブジェクトです。継承は、オブジェクトではなく*型*を整理する方法です。 –