C++ 中结构体和类的区别
本文解释了 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++ 中的类模板继承
发布时间: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 浏览次数:58 分类:C++
-
本文是关于 C++ 中三角函数的求解。 许多函数在数学库中很容易获得,但有些函数不可用,例如余切函数。对于这样的函数,我们将实现一些高效的用户定义函数。C++ 中的三角函数