c++结构体的定义和初始化

本文详细介绍了C++中结构体和类的区别,包括默认访问权限、成员函数、继承和用途。并提供了结构体的实例代码,展示了如何在C++中定义、初始化和操作结构体和结构体指针。
摘要由CSDN通过智能技术生成

在C++中,结构体(structure)是一种用户自定义的数据类型,用于组合多个不同类型的数据成员。结构体允许程序员将不同类型的数据组合在一起,形成一个逻辑上相关的数据单元。结构体中的每个数据成员可以是任意的C++内置类型,也可以是自定义的结构体、类等。

在C++中,结构体(struct)和类(class)有以下主要区别:

  1. 默认成员访问权限

    • 结构体中的默认成员访问权限是public,即结构体中定义的成员变量在结构体外部是可访问的。
    • 类中的默认成员访问权限是private,即类中定义的成员变量在类外部是不可访问的。
  2. 成员函数

    • 类可以定义成员函数,而结构体一般只包含数据成员而不包含成员函数。
    • 通过在类中定义成员函数,可以实现对类的行为进行封装,从而更好地控制和管理类的行为。
  3. 继承

    • 类支持继承(包括单继承和多继承),允许一个类从另一个类派生出新的类。
    • 结构体不支持继承,只能包含数据成员,不能派生新的结构体。
  4. 用途

    • 一般来说,结构体用于组织简单的数据结构,例如表示一组相关的数据。
    • 类用于实现面向对象编程中的封装、继承和多态等概念,用于构建复杂的对象和系统。

虽然结构体和类有这些区别,但实际上在C++中它们之间的差异并不是很大,很多时候可以互相替换使用。例如,结构体也可以包含成员函数,而类的成员默认访问权限也可以通过publicprotectedprivate关键字进行调整。


#include <iostream>
#include <string>

using namespace std;
// 1. 使用关键字struct定义结构体
struct Student{
    string name;
    int age;
    float score;
};

 /*
// 2. 使用typedef定义别名:
typedef struct {
    string name;
    int age;
    float score;
} Student;

// 3. 使用using定义别名:
using Student = struct {
    string name;
    int age;
    float score;
};
 */


int main() {
    // 1. 逐个成员赋值,初始化结构体对象
    Student student1;
        
    student1.name = "Alice";
    student1.age = 20;
    student1.score = 3.8;
    
    //2. 使用初始化列表直接为结构体对象赋值
    Student student2 = {"Bob", 21, 3.5}; //
    
    //3. 结构体指针赋值
    Student *ptr_student = new Student();
    ptr_student->name = "Charlie";
    ptr_student->age = 22;
    ptr_student->score = 3.2;
    
    return 0;
}

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值