boo*_*oom 14 c++ default-value
我有一个构造函数声明:
MyConstuctor(int inDenominator, int inNumerator);
Run Code Online (Sandbox Code Playgroud)
和定义为
MyConstuctor::MyConstuctor(int inDenominator,
int inNumerator, int inWholeNumber = 0)
{
mNum = inNumerator;
mDen = inDenominator;
mWhole = inWholeNumber;
}
Run Code Online (Sandbox Code Playgroud)
但我希望有一个选项可以将整数作为第三个参数传递,具体取决于调用者对象.这是正确的方法.如果不是什么可以替代方式.
Igo*_*Oks 39
你需要的是:
//declaration:
MyConstuctor(int inDenominator, int inNumerator, int inWholeNumber = 0);
//definition:
MyConstuctor::MyConstuctor(int inDenominator,int inNumerator,int inWholeNumber)
{
mNum = inNumerator;
mDen = inDenominator;
mWhole = inWholeNumber;
}
Run Code Online (Sandbox Code Playgroud)
这样您就可以提供非默认值inWholeNumber; 并且您将无法提供它,因此将使用0作为默认值.
作为附加提示,最好在定义中使用初始化列表:
//definition:
MyConstuctor::MyConstuctor(int inDenominator,int inNumerator,int inWholeNumber) :
mNum(inNumerator), mDen(inDenominator), mWhole (inWholeNumber)
{
}
Run Code Online (Sandbox Code Playgroud)