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

Posted

技术标签:

【中文标题】为啥我可以在成员函数中使用尚未声明的成员变量?【英文标题】:Why can I use an as-of-yet undeclared member variable in a member function?为什么我可以在成员函数中使用尚未声明的成员变量? 【发布时间】:2017-02-24 09:29:19 【问题描述】:

例如:

struct X
X():a10 
void foo()  a = 10; 

private:
int a;
;

为什么在变量 a 还没有声明的时候编译?

【问题讨论】:

【参考方案1】:

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

【讨论】:

更改:“解析手把手”为“解析并处理”? 您能详细说明一下吗?

以上是关于为啥我可以在成员函数中使用尚未声明的成员变量?的主要内容,如果未能解决你的问题,请参考以下文章