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

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】:

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

【讨论】:

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

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

分类为啥不能添加成员变量

OC中在.h和.m中声明的属性和成员变量有何区别

如何使用模板声明成员函数? (不是模板类)

为啥静态成员函数只能在类定义中声明为静态,而不能在其自己的定义中声明?

我可以在Java中的静态成员函数中声明一个静态变量吗?

c++中静态成员变量和静态成员函数(笔试经历)