我有一些類的問題。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