MyC++基础知识补漏

一、继承部分:

  1、继承只能静态的拷贝基类。(基类new产生的空间无法被派生类继承)。

  2、public继承所得基类的变量和函数性质不变;

        protected继承所得.....会将原基类public......变为protected性质;

        private继承所得......会将原基类所有性质......变为private性质。

  3、虚基类作用:防止重复继承。(避免代码重复)。

        如:人<--研究生<--在职研究生,人<--在职人员<--在职研究生,此时会发生人这个基类被重复拷贝2次(代码重复)。此时仅需将人基类设为虚基类。

  4、派生类构造函数生成顺序:先生成基类构造函数,再生成成员函数,最后生成自身;

                    析构函数销毁顺序:与构造函数相反。  

  5、派生类含参构造函数定义时需要先定义基类含参构造函数(且保证二者参数可兼容)。

        tip:若所含参数为缺省值(给定所含参数默认值即初值),则相当于无参;

                仅初始化父基类,不初始化爷基类(例外:当爷基类为虚基类时,也需要初始化)。

  6、初始化列表(可提高性能):

      (1)所有static成员变量在类外初始化(不管它是const,是引用,还是没默认构造函数的对象);

      (2) 普通成员变量,是const,是引用,是没默认构造函数的,必须在初始化列表初始化;

      (3) 普通成员变量,需要复杂运算的初始化变量,应该在构造函数内初始化,否则尽量在初始化列表中初始化。

        tip:成员是按照其在类中出现的顺序初始化的,而不是按照其在初始化列表中出现的位置初始化。

       具体初始化列表如该链接:点击打开链接

  7、继承所得基类的变量和函数与自己的......不在同一块区域。

        tip:派生类和基类包含同名的成员变量时,调用基类函数显示同名成员变量时,使用基类的成员函点击打开链接数。

        具体验证如该链接:点击打开链接

  8、多继承会带来二义性,采用作用域来解决。(因JAVA中无作用域概念,故无多继承)

        具体(略有出入,思想想通)实现如该链接:点击打开链接

***其他:

  1、private、protected不能在类外部调用,只能在类的内部调用(如在类的public函数中调用)。

  2、重载和覆盖的区别:重写=覆盖(基类和派生类中,参数相同),重载(在同一类中,参数不同)

  3、友元是C++相比纯面向对象(如C++)的一个“缺陷”。(使得private限制等成为摆设,安全性降低,如此设计纯粹是为了提高效率)

        具体叙述如该链接:点击打开链接

  4、头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用。

        具体叙述如该链接:点击打开链接

  5、this指针保存当前对象地址。

        具体验证如该链接:点击打开链接

  6、断言:assert(expression1),如果expression1为true则执行后面的语句。如果为false则,报错并终止执行后面的程序。(用来判断程序中数据是否有“非法”的错误)

        具体阐释如该链接:点击打开链接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值