c++ - 将字符串 append 到 C++ 中的类变量

标签 c++ string class oop append

我刚刚开始使用 C++,我需要帮助。我需要在 C++ 中使用 append() 函数 append 字符串,但我遇到了一些问题。这是我的代码。

class Foo
{
  char* str1;
  Foo()
  {
    Foo::str1=0;
  }
  void appendFoo(Foo foo1)
  {
    foo1.str1.append("Hello");
  }
}

我知道上面的代码是错误的。如何通过类 foo 的对象 append 字符串“Hello”。我希望对象 foo1 具有 str1 值作为 hello 并且如果我再次调用此函数,它应该被追加。任何帮助将不胜感激。

最佳答案

您应该将 Foo::str1 声明为 std::string。此外,Foo::appendFoo() 的参数应为 Foo& 类型,因此函数中的 foo1 不会是临时拷贝。

#include <string>
class Foo
{
  std::string str1;
  Foo()
  {
    str1 = "";
  }
  void appendFoo(Foo &foo1)
  {
    foo1.str1.append("Hello");
  }
}

但是,更好的设计可能是使 Foo::appendFoo() append 到对象本身的字符串。也就是说,

 void appendFoo()
 {
   str1.append("Hello");
 }

 // Calling example
 Foo bar;
 bar.appendFoo();
 // Now bar.str1 == "Hello"

关于c++ - 将字符串 append 到 C++ 中的类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21363799/

相关文章:

java - "Cannot instantiate the type..."

C++ 通用对象指针

c++ - 将字符串分配给 char 数组

c++ - 如何组织 git 工作流以同时修复错误和引入新功能

c++ - 如何从 C++ 基类继承抽象行为

PHP 检查字符串是否包含单词之间的空格(不在开头或结尾)

c - 具有字符串和输入的结构

c++ - c++ 11中的线程安全对象状态操作

java - 如何反转字符串?

c++ - 在派生模板类中专门化方法形式基类