我在编译代码时遇到了一些问题.它说,
错误C2355:'this':只能在非静态成员函数或非静态数据成员初始值设定项中引用
错误出现的代码的一部分
double getR() {
return this->r;
}
double getG() {
return this->g;
}
double getB2() {
return this->b2;
}
Run Code Online (Sandbox Code Playgroud)
也在这里
rez.r = this->r / 2 + a.getR() / 2;
rez.g = this->g / 2 + a.getG() / 2;
rez.b2 = this->b2 / 2 + a.getB2() / 2;
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
这是固定的.
现在代码的这部分错误相同......
rez.r = this->r / 2 + a.getR() / 2;
rez.g = this->g / 2 + a.getG() / 2;
rez.b2 = this->b2 / 2 + a.getB2() / 2;
Run Code Online (Sandbox Code Playgroud)
它还说
错误C2227:' - > r'的左边必须指向class/struct/union/generic类型
您需要将类范围添加到方法中,例如,如果您的类已命名,YourClass那么您的函数将是
double YourClass::getR() {
return this->r;
}
Run Code Online (Sandbox Code Playgroud)
否则getR是免费功能,因此无需this操作.您的其他方法也是如此.