【发布时间】:2014-03-10 16:32:37
【问题描述】:
void func(const int& i) 和 void func(int& i) 之间有什么区别。如果 const 在顶层被切断,是否甚至可以调用第二个重载?为什么首选 const 重载?以下将始终选择第一个重载:
func(42);
func(int{42});
int i = 42;
func(i);
int &j = i;
func(j);
func(i + 1);
哎呀,我知道我现在的问题是什么了。我在两个函数中都输入了cout << "const\n",所以看起来它总是调用第一个重载。对不起各位。
【问题讨论】:
-
标题中的
Pokemon是什么意思?! -
@stefan,这是 OP 被困在口袋妖怪世界中的微妙暗示。
-
@chris 好的,所以我认为我们可以同意这也适用于我们的世界,我删除了它。
-
是什么让你认为第一个重载总是会被选中?
-
请点击旁边的复选标记接受答案而不是更改标题。
标签: c++