什么是复合类型?

san*_*ark 8 c++ types

我的问题是关于复合类型。我似乎找不到任何解释 C++ 中复合类型的地方。

它们与复合类型不同吗?

P.W*_*P.W 5

来自 C++ 工作草案 (N4713):

6.7 类型 [basic.types]

  1. 有两种类型:基本类型和复合类型。

该草案中没有对化合物类型进行具体定义。我们被告知的是这些复合类型是如何构建的。

6.7.2 化合物类型[basic.compound]

  1. 复合类型可以通过以下方式构造:
    (1.1) — 给定类型的对象数组;
    (1.2) — 函数,具有给定类型的参数并返回 void 或给定类型的引用或对象;
    (1.3) — 指向 cv void 或给定类型的对象或函数(包括类的静态成员)的指针;
    (1.4) — 对给定类型的对象或函数的引用。有两种类型的引用:
    (1.4.1) — 左值引用
    (1.4.2) — 右值引用
    (1.5) — 包含一系列各种类型的对象、一组类型、枚举和用于操作这些对象的函数的类,以及对访问这些实体的一系列限制;
    (1.6) — 联合,它们是能够在不同时间包含不同类型对象的类;
    (1.7) — 枚举,包含一组命名常量值。每个不同的枚举构成一个不同的枚举类型;
    (1.8) — 指向非静态类成员的指针,用于标识给定类的对象内的给定类型的成员。指向数据成员的指针和指向成员函数的指针统称为成员指针类型。

在同一草案中,复合类型是指以模板的形式组合主要类型。

23.15.4.2 复合类型特征 [meta.unary.comp]

  1. 这些模板提供了主要类型类别的方便组合,对应于第 6.7 节中给出的描述。


Jef*_*TF8 5

来自C++ Primer一书,第 5 版

复合类型是根据另一种类型定义的类型。C++ 有几种复合类型,其中两种,引用和指针......

我认为这意味着复合类型是像引用和指针这样的类型。如果我错了,请纠正我。