1
我從書上看到一些代碼,就像這樣:爲什麼子類重寫虛函數不能改變父類的默認函數參數?
#include<iostream>
using namespace std;
class Father
{
public:
virtual void test(int value=520)
{
cout<<"father:"<<value<<endl;
}
};
class Son :public Father
{
public:
virtual void test(int value=250)
{
cout<<"son:"<<value<<endl;
}
};
int main()
{
Son* son =new Son;
son->test();
Father* fson= son;
fson->test();
}
程序輸出:
son250
son520
書上說,虛擬缺省參數函數在編譯時確定。
我的問題是: 虛擬函數的默認參數爲什麼不在運行時決定?像虛擬功能本身一樣。
我覺得現在不需要爲這個功能複雜的語言。 – 2015-03-03 09:08:48