c++的this指针的问题


#include<iostream>
using namespace std;
class MyClass {
public:
    int x;
    MyClass(int x) :this->x(x) {};
};
int main() {
    MyClass c(6);
    cout << c.x << endl;
}

还是不太明白为什么上面是错的,下面是对的
下面的对象也未完全生成啊

#include<iostream>
using namespace std;
class MyClass {
public:
    int x;
    MyClass(int x) :{this->x=x };
};
int main() {
    MyClass c(6);
    cout << c.x << endl;
}

初始化列表 ,需要这样子使用才是对的:

MyClass(int x) : x(x) {};  // 使用初始化列表进行成员变量赋值

语法不对。

#include<iostream>
using namespace std;
class MyClass {
public:
    int x;
    MyClass(int x) :x(x) {}
};
int main() {
    MyClass c(6);
    cout << c.x << endl;
}

这样写就是正确的。


#include<iostream>
using namespace std;
class MyClass {
public:
    int x;
    MyClass(int x) {
        this->x = x;
    }
};
int main() {
    MyClass c(6);
    cout << c.x << endl;
}

这样也可以。