C++ 错误C2355:&x27;这';:只能在非静态成员函数或非静态数据成员初始值设定项中引用

C++ 错误C2355:&x27;这';:只能在非静态成员函数或非静态数据成员初始值设定项中引用,c++,pointers,this,C++,Pointers,This,我在编译代码时遇到了一些问题。上面说, 错误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

我在编译代码时遇到了一些问题。上面说,

错误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”的左侧必须指向类/结构/联合/泛型类型


您需要将类作用域添加到方法中,例如,如果您的类名为
YourClass
,那么您的函数将是

double YourClass::getR() {
    return this->r;
}

否则,
getR
是一个自由函数,因此没有可操作的
this
。其他方法也是如此。

好的,似乎已经解决了,谢谢。但是这个代码呢?在这一个上我在哪里添加te类作用域?编辑:我编辑了主要帖子,同样的想法也适用。该代码段是否在类方法中?如果没有,则不能使用此。我不能仅仅通过看到这几行而不是它们所使用的函数来判断。如果我发布整个函数,会有帮助吗?因为我不知道该怎么办:(