j********g 发帖数: 80 | 1 1 class A{};
2 void main()
3 {
4 A a;
5 }
一个空类,然后问在第三行会发生什么? |
w****x 发帖数: 2483 | |
j********g 发帖数: 80 | 3 他说runtime有东西发生,然后问我学没学过OS阿,我就崩溃了 |
d****r 发帖数: 80 | 4 分配一个字节给a,记录地址。
【在 j********g 的大作中提到】 : 1 class A{}; : 2 void main() : 3 { : 4 A a; : 5 } : 一个空类,然后问在第三行会发生什么?
|
c********t 发帖数: 5706 | 5 lol, lz说的是第四行吧,应该是分配一个reference给变量a
【在 w****x 的大作中提到】 : 啥都不会发生
|
P*******b 发帖数: 1001 | 6 压栈吧。
【在 j********g 的大作中提到】 : 1 class A{}; : 2 void main() : 3 { : 4 A a; : 5 } : 一个空类,然后问在第三行会发生什么?
|
r*******6 发帖数: 99 | 7 call the default constructor |
j********g 发帖数: 80 | 8 是第三行 不是第四行.
原题是3, 4, 5 行分别干了啥。 |
y****n 发帖数: 743 | 9 3: 啥没干
4:啥没干
5:啥没干
估计编译会把这些“啥没干”的代码优化得渣也不剩。
【在 j********g 的大作中提到】 : 是第三行 不是第四行. : 原题是3, 4, 5 行分别干了啥。
|
h****n 发帖数: 1093 | 10 第二行,压入AX,CX,DX寄存器,压入返回地址,压入EBP寄存器,更新EBP寄存器为当前的
ESP
第三行应该是啥都没干
第四行的话空类里面自动初始化了默认构造函数,默认析构函数,默认复制构造函数和
默认赋值运算符,然后把该object压入函数栈
【在 j********g 的大作中提到】 : 1 class A{}; : 2 void main() : 3 { : 4 A a; : 5 } : 一个空类,然后问在第三行会发生什么?
|