我在编译代码时遇到了一些问题。它说,
错误C2355:'this':只能在非静态成员中引用 函数或非静态数据成员初始值设定项
错误出现的部分代码
double getR() {
return this->r;
}
double getG() {
return this->g;
}
double getB2() {
return this->b2;
}
也在这里
rez.r = this->r / 2 + a.getR() / 2;
rez.g = this->g / 2 + a.getG() / 2;
rez.b2 = this->b2 / 2 + a.getB2() / 2;
有什么想法吗?
这是固定的。
现在代码的这部分错误相同......
rez.r = this->r / 2 + a.getR() / 2;
rez.g = this->g / 2 + a.getG() / 2;
rez.b2 = this->b2 / 2 + a.getB2() / 2;
它也说
错误C2227:' - > r'的左边必须指向class / struct / union / generic type
答案 0 :(得分:9)
您需要将类范围添加到方法中,例如,如果您的类名为YourClass
,那么您的函数将是
double YourClass::getR() {
return this->r;
}
否则getR
是一个自由函数,因此没有this
可以操作。你的其他方法也是如此。