我有一些类的问题。C++类的继承
在代码:
class A
{
public:
int num;
sayNum() { cout<<num;}
};
class B : public A
{
public:
sayNum() { cout<<"my num is: "<<num;}
};
/*somewhere else...*/
A foo[10];
B something;
something.num=10;
foo[0]=something;
foo[0].sayNum();
/*...*/
当我调用foo [0] .sayNum();它打印“10”,我希望它打印“我的号码是:10”。我无法改变数组的类型。请注意,这只是一个示例代码,如果我贴我的这将是很难理解:d)
Althoug这是一个很好的建议,在这种情况下它不够好。对阵列的分配将切片对象,并且只有A部分被复制到阵列中。 – Sjoerd 2012-02-04 14:57:49
@Sjoerd所以我怎么能存储一个不同类的数组? – 2012-02-04 14:59:53
@kittyPL通过将指针(或智能指针)存储到要存储的类型的公共基类中。 – Sjoerd 2012-02-04 15:10:54