尝试使用类,但未打印任何内容.不会生成任何错误.我错过了什么吗?

Trying to use a class but nothing is printed. No errors are generated. Am I missing something?

本文关键字:任何 错误 什么 错过了 任何内 打印      更新时间:2023-10-16
运行

代码时不会生成任何错误,但不会打印任何内容。帮助?

class NatalieClass{
  public: 
    void setName(string x){
      x = name;
    }
    string getName(){
      return name;
    }
  private:
    string name;
};
int main(){
  NatalieClass ob1;
  ob1.setName("Hello World");
  cout << ob1.getName();
  return 0;
} 

该函数应该打印"Hello World",但实际上什么都不打印。

setName中:

void setName(string x){
  x = name;
}

您正在设置传递给成员变量的参数(在本例中"Hello World"(x,这是一个空字符串。然后你打印出name,它仍然是一个空字符串,所以看起来你什么都没有打印出来。

您可能打算将name分配给x,而不是相反:

void setName(string x) {
  name = x;
}

旁注:看到你的代码片段,我假设你在顶部的某个地方using namespace std;,这被认为是不好的做法,改用std::