前提・実現したいこと
C++にて継承実装の際、コンストラクタはオーバーライドせずに
コンストラクタから呼び出す関数のみオーバーライドして変化をつけたいのですが、
実装しているにも関わらず動作しません。
発生している問題・エラーメッセージ
// 期待値
strtest
// 出力値
strstr
該当のソースコード
class A
{
public:
char* str;
cBase() { init(); };
protected:
virtual void init(void) {
str = (char*)"abc";
};
};
class B: public A
{
protected:
void init() override {
str = (char*)"test";
};
};
A* a = new A;
B* b = new B;
printf(a->str);
printf(b->str);
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/30 07:14