私はクラスに少し問題があります。コードで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();
/*...*/
Iがfoo [0] .sayNumを呼び出すとき();それは "10"を印刷し、 "私の数は10です"と印刷します。私は配列の型を変更することはできません。 D)
Althougそれは良いアドバイスです、この場合は十分ではありません。配列への代入はオブジェクトをスライスし、A部分のみが配列にコピーされます。 – Sjoerd
@Sjoerdどのようにして、さまざまなクラスの配列を格納できますか? –
@kittyPL格納するタイプの共通基本クラスにポインタ(またはスマートポインタ)を格納することによって。 – Sjoerd