美文网首页
c++中的trivial

c++中的trivial

作者: 秋冬不寒 | 来源:发表于2022-05-19 18:30 被阅读0次

定义

当 C++ 中的类或结构具有编译器提供的或显式默认设置的特殊成员函数时,该类或结构为普通类型。

特点

  • 占用连续内存区域。
  • 可以具有含不同访问说明符的成员。
  • 在 C++ 中,编译器可以自由选择在这种情况下如何对成员进行排序。
    因此,你可以在内存中复制此类对象,但不能从 C 程序中可靠地使用它们。 可以将普通类型 T 复制到 char 或无符号 char 数组,并安全地复制回 T 变量。 由于对齐要求,类型成员之间可能存在填充字节

一般形式

普通类型具有普通默认构造函数、普通复制构造函数、普通复制赋值运算符和普通析构函数。 在各种情况下,“普通”意味着构造函数/运算符/析构函数并非用户提供,并且属于存在以下情况的类

  • 没有虚拟函数或虚拟基类,

  • 没有具有相应非普通构造函数/运算符/析构函数的基类

  • 没有具有相应非普通构造函数/运算符/析构函数的类类型的数据成员

示例

以下示例演示普通类型。 在 Trivial2 中,Trivial2(int a, int b) 构造函数的存在要求提供默认构造函数。 对于符合普通资格的类型,必须显式默认设置该构造函数。

struct Trivial
{
   int i;
private:
   int j;
};

struct Trivial2
{
   int i;
   Trivial2(int a, int b) : i(a), j(b) {}
   Trivial2() = default;
private:
   int j;   // Different access control
};

相关文章

  • c++中的trivial

    定义 当 C++ 中的类或结构具有编译器提供的或显式默认设置的特殊成员函数时,该类或结构为普通类型。 特点 占用连...

  • A trivial trip

    封面图大概就是最近一段时间的状态,羁旅、嗑红牛和胡思乱想。加上老家和北京,一共跑了十座城市,进行一场寻找平静的大逃...

  • A trivial day

    Today's last day of March. It is rainning and still cold....

  • [c/c++]trivial/POD类型和standard la

    什么是trivial/POD类型? C++20标准之前,POD类型指符合C的平凡旧数据结构(Plain Old D...

  • Chapter 3

    That, the trivial cause of so many momentous happenings, ...

  • 一对多回调例程

    在C++11中,借助variadic template,实现最简单的(trivial)的一对多回调。 boost:...

  • 9. Live in a small town or in a

    People seldom agree with each other even in such trivial ...

  • 9.Living in a small town or in t

    In such trivial issue as preference between a big city an...

  • 实验吧 trivial

    自己是真的菜。 网上的解题代码很多了,这里就不说了,主要是解析一下。 PS:trivial在数学里是一眼就可以看出...

  • Chapter6 Becoming a Part of Some

    Compared with games, reality is trivial. Games make us a ...

网友评论

      本文标题:c++中的trivial

      本文链接:https://www.haomeiwen.com/subject/ocitprtx.html