我的.h文件中有一个变量的名称,该函数具有相同的名称... 例如:
//computer.h
class Computer{
private:
string computerName;
int cores;
}
//computer.cpp
Computer::Computer(string computerName, int cores)
{
...
}
我想将.cpp函数中的值赋给.h文件变量。
每当我这样做时,它都不起作用。我做得对吗?
this.computerName = computerName;
this.cores=cores;
答案 0 :(得分:6)
在C ++中,this
是一个指针,所以它将是:
this->computerName = computerName;
this->cores = cores;
答案 1 :(得分:5)
使用初始化
而不是赋值Computer::Computer(string computerName, int cores)
:computerName(computerName), cores(cores)
{
...
}
是的,有效。构造函数初始化列表具有确切的目的。
答案 2 :(得分:5)
如果您发布了实际的错误消息而不仅仅是说“它不起作用”,那么很明显该问题与变量名称无关!
this
是一个指针,因此您应该使用->
运算符,而不是.
。
this->computerName = computerName;
this->cores = cores;
另外,建议通过引用而不是值接受字符串,你应该更喜欢初始化而不是赋值;你稍后会发现有些东西(特别是常量),你实际上有来做这件事:
class Computer {
private:
std::string computerName;
int cores;
}
Computer::Computer(const std::string& computerName, int cores)
: computerName(computerName)
, cores(cores)
{}
答案 3 :(得分:-2)
你要两次声明相同的变量。
只需将其更改为Computer::Computer(string computerName, unsigned int numCores)
,而不是uusing和int,我会使用unsigned int。
在C ++中,this-> cores == cores