サンプル
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){}
};