迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C++ >

C++ 中结构体和类的区别

作者:迹忆客 最近更新:2023/08/23 浏览次数:

本文解释了 C++ 中结构体和类之间的区别。 本文是针对最新版本的 C++ 编写的; 旧版本中的结构和类之间存在更多限制和差异。

在大多数情况下,结构与类非常相似,但差异很少。 让我们一一看看。


C++ 中的 struct 与 class 关键字

结构体是使用 struct 关键字声明的,而 class 关键字用于声明类。

类的语法:

class demo
{
    private:
        private members....

    public:
        public members....
};

结构体的语法:

struct demo
{
    members1;
    members2;
    ...
};

C++ 中类与结构中的访问修饰符

C++ 中的类和结构体具有 public、private 和 protected 三种访问说明符,但在 C++ 中,结构体的成员默认为 public,类的成员默认为 private。

使用类的示例代码:

#include <bits/stdc++.h>
using namespace std;

class demo {

    int temp;
};


int main()
{
    demo d;
    d.temp = 20;

}

输出:我们收到编译错误,因为临时变量是私有的。

[Error] int demo::temp is private
[Error] within this context

使用结构体的示例代码:

#include <bits/stdc++.h>
using namespace std;

struct demo {

    int temp;
};


int main()
{
    demo d;
    d.temp = 20;
    cout<<d.temp;

}

输出:

20

C++ 中类与结构体的内存分配

每当创建和实现结构体时,都会在堆栈区域中分配内存,但在创建和实现类时,会在堆区域中分配内存。


C++ 中类中的空值与结构体中的空值

结构体成员不能为空值,而类成员可以为空值。


类中的值类型与引用类型与 C++ 中的结构体

在 C++ 中,结构是值类型,类是引用类型。 值类型将其内容存储在堆栈中,并且它们直接保存声明它们的值,因此每当创建结构体变量时,该变量都直接包含该结构体的数据。

但对于引用类型的类,每当创建对象时,它都会保存对该对象的引用而不是数据。


C++ 中类与结构的安全性

安全性是结构的一个主要问题,因为我们无法隐藏最终用户的实现细节,但设计细节可以很容易地隐藏在类实现中。

让我们以表格形式总结一下差异。

结构体
使用 struct 关键字来定义结构。 使用class关键字来定义一个类。
不太安全。 更安全,因为可以对最终用户隐藏实现。
内存分配在栈区。 内存分配在堆区域中。
成员不能有空值。 成员可以有空值。
访问修饰符默认是公共的。 访问修饰符默认是私有的。
结构是一种值类型。 类是引用类型。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Arduino 中停止循环

发布时间:2024/03/13 浏览次数:444 分类:C++

可以使用 exit(0),无限循环和 Sleep_n0m1 库在 Arduino 中停止循环。

Arduino 复位

发布时间:2024/03/13 浏览次数:315 分类:C++

可以通过使用复位按钮,Softwarereset 库和 Adafruit SleepyDog 库来复位 Arduino。

Arduino 的字符转换为整型

发布时间:2024/03/13 浏览次数:181 分类:C++

可以使用简单的方法 toInt()函数和 Serial.parseInt()函数将 char 转换为 int。

Arduino 串口打印多个变量

发布时间:2024/03/13 浏览次数:381 分类:C++

可以使用 Serial.print()和 Serial.println()函数在串口监视器上显示变量值。

Arduino if 语句

发布时间:2024/03/13 浏览次数:123 分类:C++

可以使用 if 语句检查 Arduino 中的不同条件。

Arduino ICSP

发布时间:2024/03/13 浏览次数:214 分类:C++

ICSP 引脚用于两个 Arduino 之间的通信以及对 Arduino 引导加载程序进行编程。

使用 C++ 编程 Arduino

发布时间:2024/03/13 浏览次数:127 分类:C++

本教程将讨论使用 Arduino IDE 在 C++ 中对 Arduino 进行编程。

Arduino 中的子程序

发布时间:2024/03/13 浏览次数:168 分类:C++

可以通过在 Arduino 中声明函数来处理子程序。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便