-1

2 つのクラスの一部であるオブジェクトを作成するプログラムを作成しようとしています。

クラス Student があり、次に Node のクラスがあります。そして、同時に Student であり Node であるオブジェクトを作成したいと考えています。私はこれをやってみました:

            Student James; 
            James = new Node; 

しかし、それはうまくいきません。これを行う方法について何か助けはありますか?ありがとう。

4

3 に答える 3

-1

あなたが探しているのは多重継承です:

class MyClass : public Student, public Node
{
    // ...
};

MyClass James;

C++ のこの機能を読みたいと思うかもしれませんが、落とし穴がないわけではありません。

編集

Studentここでの質問は、との関係は何Nodeですか?


Studentが一種の場合Node(たとえば、生徒や教師などがいて、これらをすべてノードとして動作させたい場合)、単純にStudentから継承できますNode:

class Student : public Node
{
    // ...
};

Student James;

この場合、次のこともできます。

Node* James = new Student();
// do stuff with James
delete James;

Studentとが独立している場合Node、同時に両方として動作できるオブジェクトが本当に必要かどうかを自問する必要があります。Studentおそらく、 aと aをペアにするオブジェクトのみが必要ですNode

struct MyStruct
{
    Student myStudent;
    Node myNode;
};

MyStruct James;

Student両方として動作できるオブジェクトが実際に必要な場合Node(これらの 2 つのことは独立していますが)、多重継承が必要になります。

于 2013-10-12T13:03:21.903 に答える
-2

ポリモーフィズムを使用する:

Class Base
{
}

class Student : public Base
{
}

class Node : public Base
{
}

今:

Student s;
Node n;

Base* b = &s;
b = &n;
于 2013-10-12T13:12:01.897 に答える