c++基础问题

问题1:关于类的成员变量初始化

  1. 非static非const成员变量,必须在构造函数中进行初始化;
  2. static成员变量,必须在类的外面进行初始化;
  3. const成员变量,必须在类的构造函数的初始化列表中初始化;
  4. static const成员变量,可以在类的内部声明时初始化。
  5. 默认构造函数初始化成员变量:在类中,如果没有显示定义任何构造函数,编译器将为我们创建一个构造函数,称为合成的默认构造函数,合成的默认构造函数使用与变量初始化相同的规则来初始化成员。即当类中的数据成员没有在构造函数中显示初始化,将执行默认初始化:
  • A.对于内置类型(如int,double,char,bool等)和复合类型(数组,指针),定义任何函数体之外的内置类型或复合类型变量将被初始化0,对于函数体内的内置类型的对象,若没有初始化,其值是未定义的。
  • B.具有类类型的成员通过运行各自的默认构造函数来进行初始化。

问题2:获取数组中元素的个数

        sizeof(数组)/sizeof(数组元素类型)

问题3:动态库中dll中的全局变量在什么时候被初始化

        LoadLibrary的时候初始化动态库中的全局变量

问题4:指向类的指针,声明时,会不会调用类的构造函数

        声明类指针时不会调用类的构造函数,声明类时会调用构造函数

问题5:指向类的指针,赋值NULL时不会调用类的构造函数,赋值该类实例的地址时,不会调用构造函数,也不会调用复制构造函数

问题6:static 变量与全局变量的区别?

        生存周期相同,都是程序结束回收内存;全局变量可在任意位置访问(不同函数,不同文件,甚至在没有include,定义全局变量的文件中访问);static分为静态局部变量和静态全局变量,静态局部变量只能在函数体内访问;静态全局变量只能在本文件内访问。

问题7:基类与派生类之间的转换问题?

        分为static_cast和dynamic_cast,派生类转基类,两者都是安全的;基类转派生类,static_cast是不安全的,dynamic_cast有校验,不能转换会报异常,所以是安全的,但是会更加耗时。

参考:static_cast和dynamic_cast详解_的博客-CSDN博客_static_cast

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wthink0416

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值