OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3377|回复: 2

C++对象指针为什么不会执行构造函数?

[复制链接]

172

主题

541

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3449
金钱
3449
注册时间
2015-10-5
在线时间
492 小时
发表于 2018-7-26 23:57:37 | 显示全部楼层 |阅读模式
1金钱
谁能指点一下,指针也是一个对象啊!为什么这个对象不会执行构造函数呢?
a.png

最佳答案

查看完整内容[请看2#楼]

这样写的代码: [mw_shl_code=cpp,true]Test *q=&t;[/mw_shl_code] 本身就是对指针进行的初始化,而这个初始化的过程很简单就是把对象t的地址给了指针p。 指针只保存要操作的对象在内存中的地址,不会生成任何其他内容。楼主的想法是正确的。 楼主之前的意思可能是这个: [mw_shl_code=cpp,true]Test *q=new(Test);[/mw_shl_code] 这个时候系统首先隐式生成一个Test类型的对象(调用构造函数),然后将这个对象的地址赋值给 ...
认真做好笔记....
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

760

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2018-7-26 23:57:38 | 显示全部楼层
这样写的代码:
[mw_shl_code=cpp,true]Test *q=&t;[/mw_shl_code]
本身就是对指针进行的初始化,而这个初始化的过程很简单就是把对象t的地址给了指针p。
指针只保存要操作的对象在内存中的地址,不会生成任何其他内容。楼主的想法是正确的。
楼主之前的意思可能是这个:
[mw_shl_code=cpp,true]Test *q=new(Test);[/mw_shl_code]
这个时候系统首先隐式生成一个Test类型的对象(调用构造函数),然后将这个对象的地址赋值给指针q.
十六进制带我飞。
回复

使用道具 举报

172

主题

541

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3449
金钱
3449
注册时间
2015-10-5
在线时间
492 小时
 楼主| 发表于 2018-7-27 01:02:23 | 显示全部楼层
搞错了指针是不会生成数据的,所以对象指针并不会产生一个对象,函数指针也不会生成函数我这样理解对吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-16 17:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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