假设我有这个课程:
class Foo {
public:
void member(std::string s);
void member(int64_t &n);
};
Run Code Online (Sandbox Code Playgroud)
现在我想做点什么
int64_t value = 5;
Foo f;
f.member(value);
Run Code Online (Sandbox Code Playgroud)
问题是编译器(至少是GCC)感到困惑并且认为我正在尝试使用char*构造函数使用字符串调用成员:
invalid conversion from 'int64_t' to 'const char*
如何在不更改方法签名的情况下调用我想要的实际成员函数?模板是唯一的解决方案吗?我在没有任何帮助的情况下尝试过施放(这应该没关系,因为类型已经明确无误).
对不起 - 发现了错误.
宣言是:
class Foo {
public:
void member(std::string s);
void member(int64_t &n);
};
Run Code Online (Sandbox Code Playgroud)
删除by-ref解决了它.