c++期末理论的一些复习知识点_查漏补缺(2)

1. 关于 隐式类型转换 : 就4个规则来着:

(1)防止 损失 , 向更加 精确的 转换, 比如一个 表达式 1.0/2,就会 把结果向 1.0的double类型转换

(2) 转换为 左值的 类型

(3)转化 为 形参 的类型

(4)转换为 函数 的返回值 规定的 类型

2.关于 静态成员数据 和 静态成员函数 :

(1)静态成员 数据 一般(有一个特例) 只能在 类内声明 ,类外初始化 ,不知道啥原因

(2)静态 成员 函数 类内 类外 定义都可以 , 没有关系

3.“缺省参数 ” 就是 “ 默认参数 ”的 意思

4.定义和声明分开的,只能在声明中设置默认参数

5.TEST1 a[3], *p[2]; //也就是说,指向类的指针 不会调用 类的构造函数,逻辑上合理

6.涉及到 菱形继承的 时候 , 无论时 数据成员 还是 函数 成员 ,只要没有 采用 virtual虚继承 ,都会 在最底层的那个类中 产生 2个成员, 同时记得 涉及到 “虚基类”的构造次序的 问题,先深度遍历构造 所有的虚类 , 然后 按照从左到右的 顺序(这个时 继承的 声明次序,里面时 继承的 从上到下的 次序)构造 非虚基类 

7.在这里说明一个纠结了好久的问题,就关于 拷贝构造函数的调用的问题:

(1)这里说明一下,拷贝构造函数的 调用的 3种情况:

第一, 用一个其它的类对象 初始化一个 另一个对象的 时候

第二,当 一个类 对象的值 作为 函数的形参的时候

第三,当一个 函数 调用完之后 返回一个 类对象的 值的 时候

(2)注意,返回一个 类 对象的值 的时候 返回的 是一个 右值 , 所以 不一定会调用 赋值运算符重载, 只有在 将这个右值 赋值 给 一个左值的 时候才会  调用 拷贝赋值运算符 重载函数

8.关于 3个 “常”:

(1)常 成员数据, 必须利用 初始化 列表进行初始化

(2)常 成员函数,  不能修改 成员数据的 值   +   和非const成员函数 是构成 函数 重载的

(3)常 对象 : const Person p, 这个对象 只能 使用 常成员数据 和 常 成员函数 , 但是 并不是说 里面的 数据 和 函数都是 const的

9.区别:

(1)如果 是在 栈区 设置 类类型的指针, 那么 并不会马上为对象 分配 空间, 也就不会调用 构造函数

(2)但是, 如果是 在 堆区 设置 类 类型的指针, 那么 就会在堆区 为这些对象分配空间 , 也就是会调用 相应数量的  默认构造函数

10.基类 中的 析构函数 声明为虚函数的case: 需要使用 动态绑定 ,并且 利用 基类指针指向 派生类对象, 然后需要删除 派生类中的 堆区资源, 基类虚函数 需要 在派生类中 重写, 而且 会先调用 派生类的 析构函数,然后调用 基类的析构函数

11.关于 模板函数 和 非模板函数的 重载 , 其它的要素都相等时,重载机制将优先选择调用非函数模板而不是函数模板, 调用的 优先级 不同,

(2)其它 一些 可以推断 的情况 ,就看blog,juliosun的博客_CSDN博客-Matlab,C++/C,Unix&Linux领域博主

12.突然悟了,在 类模板 外部定义 成员函数 , 

(1)template<typename T1,typename T2>  void Person<T1,T2>::func()

{

......

}

(2)特别注意 , Person<T1,T2> 才是 这个 模板类 的 完整 名称

13. 虚函数 是不可以作为  模板类的 成员函数的 ,理由如下:

虚函数表存储着该类的所有的虚函数的地址,因此,虚函数为模板函数时,该表的大小是不知道的,因此编译器禁止!

14.派生类的 析构函数 不可以 显示调用 基类的 析构函数的 原因:

构造函数不同的是,在派生类的析构函数中不用显式地调用基类的析构函数,因为每个类只有一个析构函数,编译器知道如何选择,无需程序员干涉。

15.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值