Tôi đoán tôi không thể hiểu tại sao điều này không hoạt động. Tôi luôn nghĩ rằng tôi có thể sử dụng con trỏ 'this' bên trong constructor, nhưng tôi không bao giờ biết rằng tôi không thể sử dụng 'this' trong danh sách khởi tạo.Con trỏ 'this' trong danh sách khởi tạo của hàm tạo
#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();
}
Tôi muốn biết chi tiết liên quan đến nó.
Tôi đã gắn thẻ "luật sư ngôn ngữ": Tôi không tin rằng câu trả lời của tôi là chính xác. – Bathsheba
Bạn không ở trong cơ thể của hàm tạo, mặc dù bạn đang ở trong danh sách khởi tạo của hàm tạo. –
@DavidSchwartz 'b (this-> a)' sẽ là tốt. – Potatoswatter