迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > 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关键字来定义一个类。
不太安全。 更安全,因为可以对最终用户隐藏实现。
内存分配在栈区。 内存分配在堆区域中。
成员不能有空值。 成员可以有空值。
访问修饰符默认是公共的。 访问修饰符默认是私有的。
结构是一种值类型。 类是引用类型。

上一篇:C++ 中的类模板继承

下一篇:没有了

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

本文地址:

相关文章

C++ 中的类模板继承

发布时间:2023/08/23 浏览次数:142 分类:C++

本文将讨论 C++ 中最流行和最常用的方法之一(即类模板)。C++ 中模板的添加带来了一种新的编码范式,称为通用编程。 现在,这是 C++ 程序员工具包的一个重要元素,是许多标准库的基础,也

C++ 中的Point 和 Line 类

发布时间:2023/08/23 浏览次数:158 分类:C++

C++ 中的 Point 和 Line 类是可以表示点和线的主要数据类型。 它提供了操作点、条形和向量的方法。C++ 中 Point 和 Line 类的基本用例 Point 和 Line 类是 C++ 语言的基本部分。

在 C++ 中获取类名

发布时间:2023/08/23 浏览次数:100 分类:C++

在本文中,我们将学习如何使用 C++ 编程语言获取类名。C++ 类概述 在 C++ 中,一切都与类和对象相关,每个类和对象都有其特征和过程。

在 C++ 类中初始化静态变量

发布时间:2023/08/23 浏览次数:52 分类:C++

我们将在这篇短文中学习如何在 C++ 中初始化静态变量。在 C++ 中初始化静态变量 C++类中静态变量的初始化就是给静态变量赋值的过程。

C++ 中的垃圾收集

发布时间:2023/08/23 浏览次数:148 分类:C++

在本文中,我们将了解 C++ 中的垃圾收集。垃圾收集作为一种内存管理技术 垃圾收集是编程语言中使用的内存管理技术之一。 它是一种自动内存管理技术,作为许多编程语言的功能添加。

在 C++ 中分配和释放内存

发布时间:2023/08/23 浏览次数:70 分类:C++

C++ 编程语言提供了几个分配和释放内存的函数。 这些函数包括 malloc、calloc、realloc、free、new 和 delete。让我们从 new 和 delete 运算符开始。使用 new 和 delete 运算符分配和释放内存

查找 C++ 中的内存泄漏

发布时间:2023/08/23 浏览次数:70 分类:C++

本文将使用 C++ 编程语言解释内存泄漏、其原因、如何识别它们以及如何防止它们。C++ 中的内存泄漏 如果程序员先前分配给一个目的的部分内存被用于另一个目的,则称内存“泄漏”。

C++ 中的虚函数

发布时间:2023/08/23 浏览次数:200 分类:C++

本文将介绍 C++ 中的虚函数。 虚函数是特殊的成员函数,它们被声明的派生函数重载或重写,但在基类中定义和声明。C++ 中的虚函数 关键字 virtual 位于基类中函数声明之前。

C++ 中的余切函数

发布时间:2023/08/23 浏览次数:58 分类:C++

本文是关于 C++ 中三角函数的求解。 许多函数在数学库中很容易获得,但有些函数不可用,例如余切函数。对于这样的函数,我们将实现一些高效的用户定义函数。C++ 中的三角函数

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便