创建属于多个类的对象

时间:2013-10-12 12:58:49

标签: c++ class object

我正在尝试构建一个程序,我想创建一个属于两个类的对象。

我有班级学生,然后我有一个Node课程。我想创建一个同时是学生和节点的对象。我试过这样做:

            Student James; 
            James = new Node; 

但这不起作用。 有关如何做到这一点的任何帮助?谢谢。

3 个答案:

答案 0 :(得分:0)

使用继承http://en.wikipedia.org/wiki/Inheritance_%28computer_science%29

class Node {
  //....
}

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

Student James;

您可以通过指向基础对象的指针将对象James视为Node

Node * p = &James;

答案 1 :(得分:-1)

您正在寻找的是多重继承

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

MyClass James;

你可能想要阅读C ++的这个功能,它并非没有缺陷。

修改

这里的问题是:StudentNode之间的关系是什么?


如果Student是一种Node(例如,您有学生,教师等,并且您都希望这些作为节点),那么您只需继承Student { {1}}:

Node

在这种情况下,你也可以这样做:

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

Student James;

如果Node* James = new Student(); // do stuff with James delete James; Student是独立的,您必须问自己是否真的想要一个可以同时表现的对象。也许您只需要一个将NodeStudent配对的对象:

Node

如果你确实需要一个可以同时表现为struct MyStruct { Student myStudent; Node myNode; }; MyStruct James; Student的对象(即使这两个东西是独立的),那么你需要多重继承。

答案 2 :(得分:-2)

使用多态:

Class Base
{
}

class Student : public Base
{
}

class Node : public Base
{
}

现在:

Student s;
Node n;

Base* b = &s;
b = &n;