【发布时间】:2014-09-18 09:32:35
【问题描述】:
我有具有以下构造函数的遗留代码。
CAgs (int ar, bool isReady);
CAgs (int ar, const char* options[][2] = NULL);
它正在编译,但它不会是模棱两可的调用吗?如果我调用CAgs (10, 0);,会调用哪个构造函数?
这种行为是否依赖于编译器?
【问题讨论】:
-
隐式转换是标准化的。
-
在这种情况下我会使用“显式”
-
@MarcoA.:你的意思是第二个,因为它
CAgs大概不是大数字类型? -
It is ambiguous,你用的是什么编译器?我没听错吗?
-
@pranitkothari 它可以编译,但这并不意味着如果你这样调用构造函数就没有歧义。如果你将你想要接收的类型传递给它,它就不会模棱两可
标签: c++ oop overloading ambiguity