c++ - 将字符串参数传递给另一个字符串

标签 c++ string

我定义了这个类:

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/

相关文章:

string - 如何删除 Dart 中字符串的所有空格?

C++函数从字符串中误读字符

python - 生成元素由标记分隔的字符串时避免键入冗余

c# - 指向 PointCollection 的字符串

c++ - 嵌套类变量调用

c++ - 我应该在 ECS 中使用静态类吗?

c++ - 如何应用 libcurl 的持久连接选项

php - 寻找两段文本之间的匹配短语?

c++ - UTF-8 表示形式和 unicode 表示形式之间的字符串转换

c++ - 如何在编译时保存指向成员的指针?