【发布时间】:2013-04-08 10:16:46
【问题描述】:
我对 C++ 还是比较陌生,我似乎无法弄清楚以下两种编码可能采用一个参数或两个或三个或更多参数的函数的方式的区别。无论如何,这是我的观点
函数重载:
int aClass::doSomething(int required)
{
//DO SOMETHING
}
int aClass::doSomething(int required, int optional)
{
//DO SOMETHING
}
这与默认值有何不同:
int aClass::doSomething(int required, int optional = 0)
{
//DO SOMETHING
}
我知道在不同的情况下,其中一种可能比另一种更合适,但在这些选项之间进行选择时我应该注意哪些事项?
【问题讨论】:
-
非静态数据成员不能作为默认值;例如
int MyFoo::doSomething(int optional=MyFoo::n)
标签: c++ overloading default