我定义了这个类:
class Forum{
std::string title;
Thread* threads[5];
在 Forum::Forum 的构造函数中,我想传递一个字符串参数来定义标题(字符串类型)
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");
然后,要复制 std::string
,只需对其赋值或使用其复制构造函数。 strcpy
仅适用于 C 风格的 char*
字符串。在这种情况下,使用成员初始值设定项:
Forum::Forum(const string& k):
title(k)
{
}
关于c++ - 将字符串参数传递给另一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34593234/