📜  C++中的琐碎类

📅  最后修改于: 2021-05-30 03:37:49             🧑  作者: Mango

当C++中的类或结构具有编译器提供的或显式默认的特殊成员函数时,则为普通类型。它占用一个连续的内存区域。它可以具有具有不同访问说明符的成员。

普通类型具有普通默认构造函数,普通副本构造函数,普通副本赋值运算符和普通析构函数。在每种情况下,琐碎的事情都意味着构造函数/运算符/析构函数不是用户提供的,而是属于具有以下内容的类:

  • 没有虚拟函数或虚拟基类,
  • 没有具有对应的非平凡构造函数/运算符/析构函数的基类
  • 没有具有相应的平凡构造函数/运算符/析构函数的类类型的数据成员

以下示例显示了普通类型:

/*Since there are no explicit constructors,
there exists a default constructor*/
struct Trivial {
    int i;
  
private:
    int j;
};
  
/* In Trivial2 structure, the presence of the 
   Trivial2(int a, int b) constructor requires
   that you provide a default constructor. For 
   the type to qualify as trivial, we must  
   explicitly default that constructor.*/
struct Trivial2 {
    int i;
    Trivial2(int a, int b)
    {
        i = a;
    }
    Trivial2() = default;
};

参考: https : //msdn.microsoft.com/zh-cn/library/mt767760.aspx

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”