相关疑难解决方法(0)

C++函数重载分辨率涉及传值,引用和常量引用

假设我f在C++中使用以下3个签名定义了一些函数:

void f(int x) {}
void f(int& x) {}
void f(const int& x) {}
Run Code Online (Sandbox Code Playgroud)

这些函数可以共存,因为它们的参数类型不同.

现在我运行以下代码:

int main {
   int i = 3;
   const int ci = 4;

   f(3);
   f(i);
   f(ci);
}
Run Code Online (Sandbox Code Playgroud)

在这种特定情况下,C++如何知道要调用哪个重载函数?在C++中编写重载函数的一般规则(最佳实践?)是什么,以避免歧义.当前的C++ 14标准是否指定了任何特定的规则?

c++ overloading

3
推荐指数
2
解决办法
828
查看次数

标签 统计

c++ ×1

overloading ×1