看看下面这段代码
头文件:
class CxUser
{
public:
CxUser(string& guid) {}
};
Run Code Online (Sandbox Code Playgroud)
我有一个c ++文件,用于实例化该类CxUser(string("xxx-xxx-x-xxxx")).但是这个语句无法在g ++中编译,错误" 没有匹配函数来调用CxUser :: CxUser(std :: string) ",而它在VC++中编译.令人惊讶的是,下面的一段代码实例化了这个类.
string guid("xxx-x-xxxx-xxx-xx"); CxUser user(guid);
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激....
小智 12
你需要:
class CxUser{ public: CxUser(const string& guid) {} }
Run Code Online (Sandbox Code Playgroud)
当你说:
CxUser c( "foobar" ); // or whatever
Run Code Online (Sandbox Code Playgroud)
从characterv数组创建临时字符串对象.在C++中,您无法将非const引用绑定到临时对象.