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

时间:2015-12-14 12:51:06

标签: 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;
    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

1 个答案:

答案 0 :(得分:9)

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

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

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