請看這段代碼。它只是反映了什麼,我想要做的基本概念:重新定義派生類的繼承內部函數以對基類產生影響
#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;
}
我想check
對象val
屬性爲25,而不是10
正如你可以看到我有兩個班。類構造函數具有一些複雜的功能,我希望類Derived
也具有它的構造函數。如何更改派生函數Redefined
以便我不必完全重寫Derived
構造函數(實際上只是複製粘貼整個基類構造函數代碼並替換一行代碼 - 更新版本的Redefined
函數)?
我明白了。但是如果我的函數Redefined'更復雜,例如在我的程序中構建DirectX緩衝區,這就是爲什麼我希望它在Derived'類中表現不同。我最初的例子並不完全正確 - 分配單個整數是我想實現的非常簡化的版本。 – GuardianX 2013-02-09 10:44:53