【发布时间】:2013-01-11 19:03:58
【问题描述】:
您好,我有一个困惑,或者说更多我需要了解一些东西。我有一个过程和另一个相同的重载过程。
string conct (string a, string b) {
string str = conct(a, b, "string");
return str;
}
string conct (string a, string b, const char* c) {
// do the processing;
return concatenated_string;
}
如果我在重载函数中将c 作为默认参数,是否有可能不是有两个重载函数。因此,即使有人只传递了两个参数,我也可以只有一个函数来处理这种情况。
但我主要关心的是第三个参数,目前是const char* c。因此,如果我将其设置为const char* c = "string" 之类的东西,那么使用具有默认参数的一个函数来处理删除重载的情况是否是正确的方法。
我看到了here 的帖子,但这似乎集中在编译上,而不是我的困惑。
【问题讨论】:
-
是的。可以使用默认参数
-
我还有一个小问题,函数重载有助于提高可维护性。但是当重载的过程被非常频繁地调用时,它是否会影响整体性能?
-
关于您的评论:函数重载是在编译时解决的,因此对运行时性能绝对没有影响。
标签: c++ overloading default-arguments