【发布时间】:2016-03-19 08:34:02
【问题描述】:
下面是我写的一个C++类,
class MyString:public string{
public:
MyString(string s):string(s){}
};
int main()
{
MyString s1("abc");
MyString s2 = "cdf";
return 0;
}
在上面的代码中,My String s2 = "cdf" 行无法编译,但是如果我将 MyString 类的构造函数参数更改为public:MyString(const char s[]):string(s){},那么这行将编译。这是为什么? C++中string和char[]不是一回事吗?
谢谢,
【问题讨论】:
-
“C++中string和char[]不一样吗?”不。
-
我还会查找并阅读有关
const和参考资料 - 使代码更快 -
也许您应该阅读该错误,有时它们会提供很多信息,并且实际上会告诉您代码有什么问题...
-
@juanchopanza 并且不再有关于 cmets 中显示的评论;)
-
不,它是隐式创建的,@AndrewTruckle。