範例
class
Base {
public
:
virtual
void
fnc(
int
param = 0);
};
class
Derived:
public
Base {
public
:
void
fnc(
int
param = 1){}
};
解決方案
請勿在基礎類別中,重新定義新的預設值。 由於不應置換非虛擬函數,因此,建立非虛擬介面會指出不應變更預設參數。
class
Base {
public
:
void
fnc(
int
param = 0){
f
ncWork(param);
}
private
:
virtual
void
fncWork(
int
param);
};
class
Derived:
public
Base {
private
:
virtual
void
fncWork
(
int
param){}
};