结构体赋值

  1. // c++使用如下方式为结构体赋值时,需要保证赋值顺序与声明顺序一致
  2. struct Ttest
  3. {
  4. int a;
  5. int b;
  6. string c;
  7. };
  8. Ttest t = {
  9. .a = 1,
  10. .b = 2,
  11. .c = "Ttest"
  12. };

抽象类继承

  • 基类的析构函数若声明则必须实现(不声明时将使用默认实现),可以定义为虚函数,不能定义为纯虚==>即基类的析构函数必须存在(自定义或默认均可)

    常量

  • cpp文件内使用const定义的常量只有文件作用域

    强制类型转换

  1. static_cast用于将一种数据类型转换为另一种数据类型
    1. 上行转换(安全),将派生类的指针或引用转化为基类的指针或引用
    2. 基本数据类型间的转化,需要编程人员保证安全
    3. 将空指针转化为指定类型的指针
    4. 将任何类型的表达式转化为void类型
  2. const_cast去除指针或引用的常量性,不能去除常量的常量性
  3. reinterpret_cast改变指针或引用的类型
    1. 改变指针或引用的类型
    2. 将指针转化为一个足够长度的整形
    3. 将一个整形转化为指针
  4. dynamic_cast

其它

  • 类内静态非整形常量需要使用constexpr声明
  • 若函数声明了返回值类型,则必须给一个返回值,否则会出现,debug模式正常,release版本出现段错误