我也发几个小问题。

healer_kx 2007-10-20 11:04:31
1.
class Test
{
};

Test* pTest = new Test();
会不会调用所谓的构造函数,如果我没有声明一个构造函数。
或者说是否存在call 指令。


:答案看我blog。

2.
const int i = 5;
int* c = const_cast<int*>(&i);
*c = 6;
cout<<i;
输出多少? 为什么?


...全文
213 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jayskycai 2007-10-22
  • 打赏
  • 举报
回复
同意ls
lin_style 2007-10-22
  • 打赏
  • 举报
回复
1 不CALL
2 哈哈,编译器说我早就学会优化了,既然说了是常量我就不用取地址里面的内容了,就是5了~
blue_zyb 2007-10-21
  • 打赏
  • 举报
回复
插一句,第2题结果未定义,以前碰到这个问题的时候查过标准了,哈哈
believefym 2007-10-21
  • 打赏
  • 举报
回复
不是有call的吗

Test* pTest = new Test();
004132CE mov dword ptr [ebp-0E0h],1
004132D8 mov eax,dword ptr [ebp-0E0h]
004132DE push eax
004132DF call operator new (411203h)
004132E4 add esp,4
004132E7 mov dword ptr [ebp-0D4h],eax
004132ED cmp dword ptr [ebp-0D4h],0
004132F4 je main+6Ch (41331Ch)
004132F6 mov ecx,dword ptr [ebp-0E0h]
004132FC push ecx
004132FD push 0
004132FF mov edx,dword ptr [ebp-0D4h]
00413305 push edx
00413306 call @ILT+505(_memset) (4111FEh)
0041330B add esp,0Ch
0041330E mov eax,dword ptr [ebp-0D4h]
00413314 mov dword ptr [ebp-0E8h],eax
0041331A jmp main+76h (413326h)
0041331C mov dword ptr [ebp-0E8h],0
00413326 mov ecx,dword ptr [ebp-0E8h]
0041332C mov dword ptr [pTest],ecx
supersuperhunter 2007-10-21
  • 打赏
  • 举报
回复
5
编译器才不像4楼这么傻呢
我啃 2007-10-21
  • 打赏
  • 举报
回复
1. 明显不写不会,自己写了明显会!
不写call也没有
2. 常量折叠?
const int i = 5; //常量分配了内存(和变量很像),只是你想用i=6这样编译器会耍流氓
int* c = const_cast <int* >(&i); //你耍流氓强转
*c = 6; //可以,常量地址里面的内容被改了
cout<<i; //哈哈,编译器说我早就学会优化了,既然说了是常量我就不用取地址里面的内容了,就是5了~
我啃 2007-10-21
  • 打赏
  • 举报
回复
……来占个位子撒泡尿
其实甘草是来骗BLOG点击率的,大家不要给他骗了~
zhangyanli 2007-10-21
  • 打赏
  • 举报
回复
第一题,如果没提供的话,不调用
如果提供的话就调用.
第二题,改变了,他复制了另一个内存区,改变了这个内存,但愿i不变
healer_kx 2007-10-21
  • 打赏
  • 举报
回复
谁说这个call了。。。 。。。
wjstca 2007-10-21
  • 打赏
  • 举报
回复
6
i is no longer a const type
c point to the address of a
King_Fee 2007-10-20
  • 打赏
  • 举报
回复
5
iambic 2007-10-20
  • 打赏
  • 举报
回复
骗人。blog上没有。
healer_kx 2007-10-20
  • 打赏
  • 举报
回复
http://healerkx.spaces.live.com/

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧