我定义了这个类:
class Forum{ std::string title; Thread* threads[5];
在Forum :: Forum的构造函数中,我想传递一个字符串参数来定义title(它是type-string)
Forum::Forum(string *k) { int i; std::strcpy(&title.c_str(),k->c_str());
我有问题.在这段代码中我得到一个"左值作为一元'和'操作数'错误.如果我擦除'&'我得到错误"无效转换'const char*'到'char*'[-fpermissive]".
任何想法我将如何设置将strcpy(或其他方法可能)的参数传递给字符串类型避免上述错误?
除非您打算允许省略标题,否则我建议您传递const
引用而不是指针:
Forum::Forum(const string& k)
这使得更清楚的是必须提供名称,并允许传递字符串文字作为名称:
Forum f("Main Forum");
然后,要复制a std::string
,只需指定它或使用其复制构造函数.strcpy
仅适用于C风格的char*
字符串.在这种情况下,使用成员初始值设定项:
Forum::Forum(const string& k): title(k) { }