完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
为什么 TwoPhaseCons* obj = TwoPhaseCons::NewInstance(); 不会报错??????????
TwoPhaseCons* obj = TwoPhaseCons::NewInstance(); 这句话是绕开了构造函数去执行NewInstance();函数吗? |
|
相关推荐
7个回答
|
|
指针是指向一个地址的变量。
对象指针表示指向一个此类的一个对象,不会产生实际的对象。 你的演示中,通过 new 在堆中创建一个对象,为了可以访问,将对象指针指向堆空间生成对象的地址处。 |
|
|
|
|
|
NewInstance()是静态,内部还是new,最终会调用TwoPhaseCons()吧。各自打印一下,看下调用先后顺序吧。
写了个测试程序试了一下,输出结果如下: 我又搜索了一下二阶构造函数,我觉得你可能存在的疑问的解答是:NewInstance()是静态的,类中静态函数可以没有对象而直接调用的,跟全局类似。 |
|
|
|
3#正解,类的静态成员函数可以直接拿过来用的,它不依赖于某个具体的类的对象,所以就算是当前程序没有建立一个类的实例(也就是对象)也可以调用这个类的静态成员函数。
|
|
|
|
|
|
|
|
静态成员函数是类中特殊的成员函数
静态成员函数属于整个类所有 可以通过类名直接访问共有静态成员函数 可以通过对象名访问共有静态成员函数 NewInstance() 是类静态 ”成员“ 函数,属于类内部,当然可以调用 private 的构造函数。 将构造函数声明为 private 是强制告诉使用者,当前类必须进行二阶构造。 |
|
|
|
指针是不会生成数据的,所以对象指针并不会产生一个对象,函数指针也不会生成函数我这样理解对吗?
|
|
|
|
只有小组成员才能发言,加入小组>>
请问下图大疆lightbridge2遥控器主板电源芯片型号是什么?
4480 浏览 1 评论
使用常见的二极管、三极管和mos做MCU和模组的电平转换电路,但是模组和MCU无法正常通信,为什么?
349浏览 2评论
为了提高USIM卡电路的可靠性和稳定性,在电路设计中须注意的点有哪些?
357浏览 2评论
381浏览 2评论
373浏览 2评论
430浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 20:43 , Processed in 1.228507 second(s), Total 89, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号