为什么我可以在成员函数中使用尚未声明的成员变量?

时间:2017-02-24 09:29:20

标签: c++ class struct

例如:

struct X{
X():a{10} {}
void foo() { a = 10; }

private:
int a;
};

为什么在变量a尚未声明时编译?

1 个答案:

答案 0 :(得分:9)

编译器基本上对类或结构定义进行了两次传递。一个用于解析和处理成员声明的结构/类,然后是内联函数的一个传递。