これはなぜ動作しないのか分かりません。私はいつもコンストラクタ内で 'this'ポインタを使うことができると思っていましたが、初期化リストで 'this'を使うことはできませんでした。コンストラクタの初期化リストの 'this'ポインタ
#include <iostream>
class A {
public:
int a;
int b;
A(int a = 0, int b = 0) : this->a(a), this->b(b) { }
void print() {
std::cout << a << ", " << b << std::endl;
}
};
int main() {
A a;
a.print();
}
私はそれに関連する詳細を知りたいと思っています。
私は「言語弁護士」とタグ付けしました。私の答えは正しいとは確信していません。 – Bathsheba
あなたはコンストラクタの本体の内部にいませんが、コンストラクタの初期化子リストにあります。 –
@DavidSchwartz 'b(this-> a)'はうまくいくでしょう。 – Potatoswatter