このコードを見てください。それは私がやりたいことの基本的な概念を反映しているだけです:
#include <iostream>
using namespace std;
class Base
{
public:
Base()
{
/* Some code I want to reuse */
Redefined();
}
virtual ~Base() {}
void Redefined() { val = 10; }
int val;
};
class Derived : public Base
{
public:
Derived() : Base() {}
~Derived() {}
void Redefined() { val = 25; }
};
int main()
{
Base* check = new Derived();
cout << check->val << endl;
system("pause");
return 0;
}
val
object のプロパティcheck
を 10 ではなく 25 にしたい。
ご覧のとおり、2 つのクラスがあります。Base
クラスコンストラクターにはいくつかの複雑な機能があり、クラスのコンストラクターにもそれを持たせたいと思っDerived
ています。Redefined
コンストラクターを完全に書き直す必要がないように、派生関数を変更するにはどうすればよいですかDerived
(実際には、基本クラスのコンストラクター コード全体をコピーして貼り付け、コードの 1 行を置き換えるだけです -Redefined
関数の更新バージョン)。