使用"编译错误"结构构造函数中的关键字? - C ++

时间:2016-03-04 20:01:07

标签: c++ struct constructor

我有以下内容:

int main()
{
    struct A
    {
        unsigned char x, y;

        A(unsigned char x, unsigned char y)
        {
            this.x = x; // Error: expression must have class type.
            thix.y = y; // Error: expression must have class type.
        }
    };

    return 0;
}

如何正确引用x的{​​{1}}和y变量,而不是struct Ax变量的构造函数参数{ {1}}?

谢谢。

1 个答案:

答案 0 :(得分:7)

this是一个指针,因此您需要取消引用它:

this->x = x;
this->y = y;

如果它是structclass并不重要,它在两种情况下都是指针。两者之间唯一不同的是,struct成员默认为public,而class成员默认为private

此外,在函数内部定义structclass并不是一个好主意。相反,请在全球范围内进行。