我的.h文件中有一个变量的名称,该函数具有相同的名称...例如:
//computer.h
class Computer{
private:
string computerName;
int cores;
}
//computer.cpp
Computer::Computer(string computerName, int cores)
{
...
}
Run Code Online (Sandbox Code Playgroud)
我想将.cpp函数中的值赋给.h文件变量.
每当我这样做,它都行不通.我做得对吗?
this.computerName = computerName;
this.cores=cores;
Run Code Online (Sandbox Code Playgroud)
在C++中,this是一个指针,所以它将是:
this->computerName = computerName;
this->cores = cores;
Run Code Online (Sandbox Code Playgroud)
而不是赋值,使用初始化
Computer::Computer(string computerName, int cores)
:computerName(computerName), cores(cores)
{
...
}
Run Code Online (Sandbox Code Playgroud)
是的有效.构造函数初始化列表具有确切的目的.
如果您发布了实际的错误消息,而不仅仅是说"它不起作用",那么很明显该问题与变量名称无关!
this是一个指针,所以你应该使用->运算符,而不是..
this->computerName = computerName;
this->cores = cores;
Run Code Online (Sandbox Code Playgroud)
另外,建议通过引用而不是值来接受字符串,你应该更喜欢初始化而不是赋值; 稍后你会发现有些东西(特别是常量)你实际上必须这样做:
class Computer {
private:
std::string computerName;
int cores;
}
Computer::Computer(const std::string& computerName, int cores)
: computerName(computerName)
, cores(cores)
{}
Run Code Online (Sandbox Code Playgroud)