文章

Struct

Struct

[TOC]

1. struct 的使用

以下通过例子来解释几种struct的使用:

1
2
3
4
5
6
7
8
typedef struct A
{/*...*/}a,b;  // a和b是A的别名,与A无异

struct A
{/*...*/}a,b;  // a和b是A的别两个对象

 struct
{/*...*/}a,b;  // 无名结构体,只能通过a和b调用

2. struct 与 class 的区别

(1) C语言中

在C语言中,struct就是一个简单类型,与class的区别很大。1

(2) C++中

在 C++ 中,struct(结构体)和 class(类)在很多方面都非常相似,

但它们在默认的访问权限和继承类型上有一些关键区别:

  1. 默认的访问权限:
    • class 中,默认的成员访问权限是 private
    • struct 中,默认的成员访问权限是 public
  2. 默认的继承类型:
    • 当从 class 继承时,默认的继承类型是 private
    • 当从 struct 继承时,默认的继承类型是 public

使用建议:

  • 当你需要一个主要用于数据存储的简单结构体时,使用 struct 是更自然的选择。
  • 当你需要一个具有封装、继承和多态等特性的完整类时,使用 class 更为合适。

参考文章23

本文由作者按照 CC BY 4.0 进行授权