1

別のクラスが派生したクラスをインスタンス化する必要がありますか?
そうしない場合でも、次の例のように、とにかくそのメソッドにアクセスできます。

#include <iostream>
struct Class1 {
public:
    void func();
};

struct Class2 : public Class1 {
    // Class1 c1; <-- is this necessary?
};

void Class1::func(){
    std::cout << "function called" << std::endl;
}
int main() {
    Class2 c2;
    c2.func();
}

期待される を取得しfunction calledます。
しかし、いくつかの例では、基本クラスが派生クラスでインスタンス化されていることがわかります: Class1 c1;. それはなんのためですか?

4

4 に答える 4

0

それは絶対に必要ではありません。参照している例を見ないと、作成者がインスタンスを作成した理由を判断するのは困難です。ほとんどの場合、Class2::func() が c1.func() を呼び出したときに何が起こるかを示します。

于 2013-05-13T22:35:54.580 に答える