C++ 面试基础之二

2018-07-15  本文已影响0人  Catcher07

一、强制类型转换运算符

static_cast

dynamic_cast

const_cast

reinterpret_cast

二、运行时类型识别

type_id

type_info

三、拷贝构造函数

在C++中,下面三种对象需要调用拷贝构造函数(有时也称“复制构造函数”):

  1. 一个对象作为函数参数,以值传递的方式传入函数体;
  2. 一个对象作为函数返回值,以值传递的方式从函数返回;
  3. 一个对象用于给另外一个对象进行初始化(常称为复制初始化);
    通常的原则是:①对于凡是包含动态分配成员或包含指针成员的类都应该提供拷贝构造函数;②在提供拷贝构造函数的同时,还应该考虑重载"="赋值操作符号。
    https://blog.csdn.net/zhaohuaonline/article/details/19497129

C++成员初始化列表详解

  1. 从必要性:
    a. 成员是类或结构,且构造函数带参数:成员初始化时无法调用缺省(无参)构造函数
    b. 成员是常量或引用:成员无法赋值,只能被初始化
  2. 从效率上:
    如果在类构造函数里赋值:在成员初始化时会调用一次其默认的构造函数,在类构造函数里又会调用一次成员的构造函数再赋值。
    如果在类构造函数使用初始化列表:仅在初始化列表里调用一次成员的构造函数并赋值。
    https://blog.csdn.net/poundssss/article/details/49383603
    https://www.cnblogs.com/BlueTzar/articles/1223169.html
    https://blog.csdn.net/zizi7/article/details/52383015
上一篇 下一篇

猜你喜欢

热点阅读