c ++孩子们适合父母的位置?

时间:2013-04-12 15:54:31

标签: c++ class object parent

在我的java课程中,我记得制作一个包含动物类物品的谷仓类,而我的鸡和牛类(它们是动物类的孩子)将适合谷仓,就像他们是他们的父母一样。

我想知道c ++是否也允许这个?

2 个答案:

答案 0 :(得分:4)

是的。一般概念称为Liskov Substitution Principle

要注意的一个问题是在C ++中出现但在Java中不是切片:What is object slicing?

答案 1 :(得分:1)

在您的java示例中,您可能拥有对Animal类的引用。在这种情况下,您可以在该引用中使用Animal类的任何后代类。

如果使用指向实例的指针,则与C ++相同。像:

class Barn
{
public:
    Animal* animal;
};

class Animal
{
public:
};

class Chicken : public Animal
{
public:
};

Barn::animal甚至可以引用Chicken类。

我希望这会有所帮助。