结构和等级之间的差异

作者: Laura McKinney
创建日期: 1 四月 2021
更新日期: 4 可能 2024
Anonim
还在用底薪+提成的薪资结构?难怪你公司业绩上不去
视频: 还在用底薪+提成的薪资结构?难怪你公司业绩上不去

内容


结构和类都提供了一种创建自定义数据类型的方法,该数据类型可进一步用于创建实例。 C ++扩展了结构的作用以创建类。结构和类在所有方面都是相似的,唯一的区别是结构默认情况下将其所有成员都称为“公共”,而类默认情况下将其所有成员都称为“私有”。让我们使用比较表来研究结构和类之间的区别。

  1. 比较表
  2. 定义
  3. 关键差异
  4. 相似点
  5. 结论

比较表

比较基础结构体
基本的 如果未声明访问说明符,则默认情况下所有成员都是公共的。如果未声明访问说明符,则默认情况下所有成员都是私有的。
宣言 struct structure_name {
类型struct_element 1;
类型struct_element 2;
输入struct_element 3;
.
.
.
};
类class_name {
数据成员;
成员函数;
};
实例 结构的实例称为结构变量。类的实例称为对象。

结构定义

结构是不同数据类型的变量的集合,所有变量均由一个名称引用。结构声明形成用于创建结构实例的模板。该结构声明如下。

struct sname {类型struct_element1;类型struct_element2;类型struct_element3; 。 。 。 } variable1,variable2,。 。 。;

关键字“ struct”向编译器定义正在声明的结构。 “名称”代表为结构指定的名称。结构声明始终以分号终止,因为它被视为语句。您可以按照上述代码(variable1,variable2)中的说明,在结构终止之前声明该结构的实例,也可以在main()中声明该结构的实例,方法是先在结构名称之前写入实例名称。


//示例。 main(){sname S1,S2; }

S1和S2是该结构的实例。结构的实例称为“结构变量”。可以使用点(。)运算符通过结构变量访问在结构主体内部声明的元素。

//示例S1。 struct_element1;

  • 也可以创建结构数组,为此,您首先需要声明一个结构,然后声明该类型的数组。

// sample struct sname sarray;

上面的语句创建了一个名称为“ sarray”的数组,其中包含十个变量,每个变量的组织方式均与“ sname”中的定义相同。

  • 您可以将结构成员传递给函数,也可以将整个结构传递给函数。
  • 像整数指针,数组指针一样,也可以通过在结构变量名称的前面放置“ *”来声明结构指针。

//样本struct sname * S1;

注意:

“结构”元素存储在连续的存储位置中。

类的定义

OOP中的类定义了一个新类型,其中包含数据成员和成员函数,用于访问类的数据成员。类的实例称为“对象”,每个对象具有与类相同的组织。该类是逻辑抽象,而对象具有物理存在。该类在语法上类似于该结构。该类可以声明为如下。

类class_name {私有数据成员和成员函数。 access_specifier类型为data_member;输入mem_funct(parameter list){。 。对象列表;

在这里,类是一个关键字,它向编译器声明一个类已被声明。 OOP的主要特征是数据隐藏,这是通过提供“公共”,“私有”,“受保护”三个访问说明符来实现的。如果在声明数据成员或成员函数时未在类中指定任何访问说明符,则默认情况下将全部视为私有。公共访问说明符允许程序的其他部分访问函数或数据。该类的私有成员只能由该类的成员访问。受保护的访问说明符在继承期间应用。声明访问说明符后,就不能在整个程序中对其进行更改。

这些对象不过是类的实例。同一类的对象可以使用点(。)运算符访问该类的成员。

//object.mem_funct(arguments);

  • 该对象也可以作为参数传递给函数。
  • 也可以创建指向对象的指针。
  1. 结构和类之间的主要区别在于,默认情况下,结构的所有成员都是公共的,而默认情况下,类的所有成员都是私有的。

相似之处:

  • 在C ++中,结构和类在语法上都是等效的。
  • 结构和类都可以声明其某些成员为私有。
  • 结构或类的名称可以用作独立类型。
  • 结构和类都支持继承机制。

结论:

C语言中的结构有一些限制,因为该结构不允许隐藏数据,“ struct”数据类型不能被视为内置类型,结构不支持继承。 C ++中的结构克服了这些限制。在C ++中,类是结构的扩展版本。程序员发现使用类轻松保存数据和功能,而仅使用结构保存数据很容易。