Tag: 不明确

function模板的部分sorting – 模糊的调用

考虑一下这个C ++ 11代码: #include <iostream> #include <cstddef> template<typename T> void f(T, const char*) //#1 { std::cout << "f(T, const char*)\n"; } template<std::size_t N> void f(int, const char(&)[N]) //#2 { std::cout << "f(int, const char (&)[N])\n"; } int main() { f(7, "ab"); } 好的,那么select哪个超载? 在将编译器输出的bean溢出之前,让我们尝试对此进行推理。 (所有参考章节均适用于C ++ 11,ISO / IEC 14882:2011的最终标准文档。) 从#1的 T推导到int ,从#2的 N推导到3 ,两个专业都是候选者,两者都是可行的,到目前为止这么好。 […]

使用浮点数“调用重载函数是不明确的”错误

我重载函数add() ,但是当我使用float数据types时,它显示一个错误。 但是,当我将其更改为double ,它工作正常。 为什么float导致错误? 代码是: #include <iostream> using namespace std; class students{ private: int i; float f; public: void add(int b){ i=b; cout << "First Int: " << i; } void add(float c){ f=c; cout << "Second Int: " << f; } }; int main(){ students obj; obj.add(9); obj.add(5.5); } 错误: In function 'int […]