C++ 结构(struct)

C++ 结构(struct) 首页 / C++入门教程 / C++ 结构(struct)

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

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

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

结构的语法

struct structure_name
{
    //成员声明。
} 

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

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

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

创建结构实例

结构变量可以定义为: Student s;

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

访问结构变量

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

s.id = 4;

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

C++结构示例

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

#include <iostream>  
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)<<endl;  
    return 0;  
}  

输出:

Area of Rectangle is: 40

使用构造函数和方法

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

链接:https://www.learnfk.comhttps://www.learnfk.com/c++/cpp-structs.html

来源:LearnFk无涯教程网

#include <iostream>  
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

Struct v/s Class

structclass
如果未明确声明访问说明符,则默认情况下,访问说明符将是公共的。如果未明确声明访问说明符,则默认情况下,访问说明符将为私有。
结构语法: struct structure_name { //结构体。 }类的语法: class class_name { //类的主体。 }
该结构的实例称为"结构变量"。该类的实例称为"该类的对象"。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

朱赟的技术管理课 -〔朱赟〕

Web协议详解与抓包实战 -〔陶辉〕

玩转webpack -〔程柳锋〕

职场求生攻略 -〔臧萌〕

动态规划面试宝典 -〔卢誉声〕

MySQL 必知必会 -〔朱晓峰〕

大数据经典论文解读 -〔徐文浩〕

朱涛 · Kotlin编程第一课 -〔朱涛〕

林外 · 专利写作第一课 -〔林外〕

好记忆不如烂笔头。留下您的足迹吧 :)