0

一个简短的,也许是愚蠢的问题。对于类和结构,有时我喜欢使用与构造函数参数同名的成员变量。例如:

class Vector3
{
    float x, y, z;

    public Vector3(float x, float y, float z)
    {
        this.x = x;
        this.y = y;
        this.z = z;
    }
}

基本上,我也想对结构执行此操作,但您不能在结构构造函数中使用“this”(我认为它们的用途是为类保留的)。有没有办法做到这一点,或者我应该给我的论点另一个名字?

4

2 回答 2

7

你可以使用它,但它是一个指针,就像在类中一样:

this->x = x;

顺便说一句,除了默认访问说明符struct之外, a和 aclass对所有内容都是完全相同的。

于 2012-06-26T19:54:21.497 回答
6

你真正应该做的是使用构造函数的初始化列表:

class Vector3
{
    float x, y, z;

  public:
     Vector3(float x, float y, float z) : x(x), y(y), z(z) {}

};

但是关于您对在结构中使用的疑虑this,与类没有区别。

我想补充一点,确实值得为数据成员制定某种命名约定,以避免混淆。收藏夹往往是尾随的下划线或前导m_

于 2012-06-26T20:01:42.043 回答