结构的例子是否有正确的名称?

时间:2017-08-30 18:12:01

标签: c++ struct

类的实例称为对象,但结构的实例是否有某个名称?

使用单独的术语“class”和“object”有助于区分类和类的实例,但我只听说过单个术语“struct”来指代struct或者结构的实例(取决于上下文)。

2 个答案:

答案 0 :(得分:7)

结构,类,整数,联合,浮点等实例都是对象。

答案 1 :(得分:1)

structclass之间的唯一区别是您声明一个类时的默认访问权限(无论您使用struct还是class,您声明的是一个类! )。这两个:

struct Foo : private Bar { private: int x; };
class Foo : Bar { int x; };

以及这两个:

struct Foo : Bar { int x; };
class Foo : public Bar { public: int x; };

是等价的。拥有一个对象无法告诉该对象,该类是否使用关键字structclass声明。

来自类型特征is_class的{​​{3}}:

  

请注意,使用struct关键字声明的类型是类,所以这个   “结构”的特征是正确的。

cppreference有这个枚举:

  

类型根据其属性分为不同的类别:

     
      
  • 对象类型是一种(可能是cv限定的)类型,它不是函数类型,不是引用类型,也不是void类型(另请参见   的std :: is_object);
  •   
  • 标量类型是[...]
  •   
  • 琐碎的类型[...]
  •   

<强> TL; DR

C ++没有结构和类,只有类。

或者......如果您对一些误导性的术语感到满意:结构和类的实例都是对象。