inside the c++ object model

1、不同类型指针的区别

本质没有不同,不同类型的指针只是影响编译器对所指向内存的大小与内容解析方式而已

2、默认构造函数

只有在四种情况下系统才会给你构造默认的

1、有member object

2、有base object

3、有 virtual function

4、base object 有virtual function


3、默认copy 构造函数

只有在四种情况下才不会表现出 bitwise copy semantics

1、member object 含有copy constructor

2、base含有 copy constructor

3、含有 virtual function

4、base object链上含有 virtual base class

4、NRV优化(name return Value)

当有一个copy constructor(无论是自己定义的还是系统生成的)根据编译器可能进行nrv优化,提高效率

Point3d::Point3d( )

{

memcpy(this,0,sizeof(Point3d));

}

此时的Point3d对象里面有virtual function 会导致虚函数表也被置为0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值