【发布时间】:2014-03-04 10:52:45
【问题描述】:
Person(const string &name)
{
mName=name;
}
Person(string name)
{
mName=name;
}
mName 是一个私有成员变量
所以我创建了一个名为 Person 的类。我想知道 const string &name 和 string name 有什么区别。我试过只输入字符串 &name,但它给了我一条错误消息。
我知道 & 是一个引用,几乎就像一个地址?我猜需要 const 因为引用是常量?另外,为什么字符串 &name 不起作用?
这是我收到的错误消息
候选构造函数(隐式复制构造函数) 不可行:没有从 'const char [4]' 到 'const Person' 的已知转换 第一个论点
候选构造函数不可行:没有已知的转换 第一个参数从 'const char [4]' 到 'string &' (aka 'basic_string, allocator > &') 人(字符串&名称)
【问题讨论】:
-
发布它在尝试使用非常量引用时给您的错误消息。
-
错误信息与mName的数据类型有关。你用的什么数据类型,能贴出完整的代码吗?