📜  C++结构体

📅  最后修改于: 2020-10-16 06:59:53             🧑  作者: Mango

C++结构体

在C++中,类和结构体是用于创建类实例的蓝图。结构用于轻型对象,例如矩形,颜色,点等。

与类不同,C++中的结构是值类型,而不是引用类型。如果您具有在创建结构后不打算修改的数据,这将很有用。

C++结构是不同数据类型的集合。它类似于保存不同类型数据的类。

结构体的语法

struct structure_name
{
     // member declarations.
} 

在上面的声明中,通过在struct关键字之后加上identifier(结构名称)来声明结构。在花括号内,我们可以声明不同类型的成员变量。请考虑以下情况:

struct Student
{
    char name[20];
     int id;
     int age;
}

在上述情况下,Student是一个包含三个变量名称,id和age的结构。声明结构时,不会分配任何内存。创建结构变量后,便会分配内存。让我们了解这种情况。

如何创建结构体实例?

结构变量可以定义为:

学生们;

s是类型为Student的结构变量。创建结构变量后,将分配内存。学生结构包含一个char变量和两个整数变量。因此,一个char变量的内存为1个字节,两个int为2 * 4 =8。s变量占用的总内存为9个字节。

如何访问结构体变量:

可以通过简单地使用结构的实例,后跟点(。)运算符,然后使用结构的字段来访问结构的变量。

例如:

s.id = 4;

在上面的语句中,我们使用dot(。)运算符访问Student结构的id字段,并将值4分配给id字段。

C++结构体示例

让我们来看一个简单的Rectangle结构示例,它具有两个数据成员width和height。

#include   
using namespace std;  
 struct Rectangle    
{    
   int width, height;    
    
 };    
int main(void) {  
    struct Rectangle rec;  
    rec.width=8;  
    rec.height=5;  
   cout<<"Area of Rectangle is: "<<(rec.width * rec.height)<

输出:

Area of Rectangle is: 40

C++结构体示例:使用构造函数和方法

让我们看一下struct的另一个示例,在该示例中,我们使用构造函数初始化数据,并使用方法来计算矩形的面积。

#include   
using namespace std;  
 struct Rectangle    {    
   int width, height;    
  Rectangle(int w, int h)    
    {    
        width = w;    
        height = h;    
    }    
  void areaOfRectangle() {     
    cout<<"Area of Rectangle is: "<<(width*height); }    
 };    
int main(void) {  
    struct Rectangle rec=Rectangle(4,6);  
    rec.areaOfRectangle();  
   return 0;  
}  

输出:

Area of Rectangle is: 24

结构v / s类别

Structure Class
If access specifier is not declared explicitly, then by default access specifier will be public. If access specifier is not declared explicitly, then by default access specifier will be private.
Syntax of Structure:

struct structure_name
{
// body of the structure.
}

Syntax of Class:

class class_name
{
// body of the class.
}

The instance of the structure is known as “Structure variable”. The instance of the class is known as “Object of the class”.