在g ++编译器中带引用参数的构造方法

Pra*_*bhu 0 c++

看看下面这段代码

头文件:

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引用绑定到临时对象.