鱼C论坛

 找回密码
 立即注册
查看: 4016|回复: 3

C++构造函数的疑问

[复制链接]
发表于 2013-1-5 20:11:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么在C++类中没有定义构造函数,也没有声明虚函数,也没有继承关系的类中,编译器还能为他搞个对象出来?  是不是把这个简单类当做了个几个连续定义的变量了?  还是什么原因?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-1-5 21:05:15 | 显示全部楼层
  1. 1:    #include <iostream>
  2. 2:
  3. 3:    using namespace std;
  4. 4:
  5. 5:    class Point
  6. 6:    {};
  7. 7:    int main()
  8. 8:    {
  9. 00401030   push        ebp
  10. 00401031   mov         ebp,esp
  11. 00401033   sub         esp,44h
  12. 00401036   push        ebx
  13. 00401037   push        esi
  14. 00401038   push        edi
  15. 00401039   lea         edi,[ebp-44h]
  16. 0040103C   mov         ecx,11h
  17. 00401041   mov         eax,0CCCCCCCCh
  18. 00401046   rep stos    dword ptr [edi]
  19. 9:        Point P;
  20. 10:       return 0;
  21. 00401048   xor         eax,eax
  22. 11:   }
  23. 0040104A   pop         edi
  24. 0040104B   pop         esi
  25. 0040104C   pop         ebx
  26. 0040104D   mov         esp,ebp
  27. 0040104F   pop         ebp
  28. 00401050   ret
复制代码


兄台 , 这是我找的反汇编代码 , 很明显, 程序中将Point类实例化 , 但事实上编译器什么都没有做(因为 9 和10 之间没有汇编代码) , 当然也就没有你说的定义变量神马的
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-1-5 21:36:31 | 显示全部楼层

当然什么都没有,这和声明变量一个原理啊
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-1-5 23:43:01 | 显示全部楼层
090704020006 发表于 2013-1-5 21:36
当然什么都没有,这和声明变量一个原理啊

哦哦哦,sorry 啊 , 我记得声明变量时会给变量名分配地址的……我错鸟……………………
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-9 16:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表