错误C2355:'this':只能在非静态成员函数或非静态数据成员初始值设定项中引用

use*_*761 1 c++ pointers this

我在编译代码时遇到了一些问题.它说,

错误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类型

Cor*_*mer 9

您需要将类范围添加到方法中,例如,如果您的类已命名,YourClass那么您的函数将是

double YourClass::getR() {
    return this->r;
}
Run Code Online (Sandbox Code Playgroud)

否则getR是免费功能,因此无需this操作.您的其他方法也是如此.