C++笔记(1)

 
1.       c++ struct 作用:
改变默认的属性,使默认的private成为public
不会改变内存结构的布局,使得内存布局起来像C一样。
2.       c++中实现多态的方法
通过指针或者引用将子类指针转化为基类的指针
透过虚函数调用子类的函数
通过dynamic 或者 typeid 关键字对指针进行父类向子类的转换
3.       c++中一个类的大小如何构成?
类中的非静态数据成员
内存对齐不跟的填补空间
支持多态所需要的指向函数表的指针的大小,以及为支持virtual基类所需要的指针的大小
4.       当编译器需要的时候,他才会创建一个default constructor。这个constructor只会按照编译器的需要进行构建, 不会理会程序员的需要。
带有base class default constructor 的子类,会在其构造函数中都调用父类的缺省构造函数,如果子类有明显的构造函数,子类不会生成缺省的构造函数。
带有虚函数的类的继承体系中,编译器会为每一个构造函数(包括缺省的构造函数)为vptr赋值,令其指向vtbl
虚拟继承同样存在虚拟指针赋值的问题。
带有default constructor member 的类在构造时 ,必须依次(声明次序)调用成员的default constructor
5.       拷贝构造函数发生在:
以其他值作为初值生成新的变量时 : X a = b
函数调用中参数传递时
函数返回中存在类的返回值时。
6.       default 拷贝构造函数发生时:
如果类的member有explicit copy constructor 那么就会调用之, 否则bitwise copy
如果类有含有explicit copy constructor的父类时 那么就会调用之, 否则bitwise copy
如果类中virtual function,这样宝贝构造函数不是真正的位拷贝,其必须可以识别子类父类,构造函数表,往函数表中填充子项,然后设置正确的指针。
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值