在理解类和结构之间的区别之前,我们应该先了解一些与它们相关的基本概念。如果不理解概念,就很难理解两者之间的区别。
这是与面向对象编程相关的两个重要概念,它们构成了构建函数和向其他函数传递数据的基础。为了更好地理解,我们可以把它与现实生活中的例子联系起来。一个类可以被视为一个商店,而一个对象可以是任何一个单独的、特定的商店,如杂货店、文具店、水果店等。所有对象都共享主类——商店——的共同属性,反过来,这些对象也可以通过对象拥有自己的专有属性,如特定的设计、照明等,我们可以实际使用这个类;它们构成类的实例。
类的语法
Class Store {
public string things;
public string design;
}
对象的语法
Store grocery = new Store();
Store Stationery = new Store();
一个结构只包含数据,因此它有助于通过结构对象来构建各个数据需求。与类不同,它缺少函数。其语法如下:
struct grocery_entrance{
char entrance_name[50];
int entrance_size;
} grocery_entrance;
所有商店都可以使用结构'入口'与个人的名称和大小。
这类似于儿子继承父亲的财产,反过来,儿子也可以增加自己的一些其他财产。类可以是基类,也可以是派生类,其中前者可以作为基类来形成后者。派生类除了从基类获得的属性外,很少为自己添加其他属性。考虑上述示例时,杂货店仍然可以派生到特定的杂货店,例如XYZ杂货店。
既然我们已经熟悉了基本概念,我们就可以深入了解类和结构之间的实际区别了。
Demo obj=新建Demo();
这意味着在创建类的对象时必须使用关键字“new”。在创建结构的对象时,这不是必需的。看看它们的语法:
演示对象;
即使没有“new”关键字,它也能完美地工作。
由于类在一起处理数据和函数方面更加灵活,所以当所使用的对象复杂且庞大时,我们可以使用它。在我们的示例中,Mall可以使用类“store”以更好的方式表示系统。然而,结构仅限于较小的对象,因为它们的效率相对低于类。因此,如果你自己设计一个商店,结构是更好的选择。
您可能听说过术语“装箱”和“取消装箱”将结构转换为类,反之亦然。虽然这些都是有效的过程,以帮助我们在转换,他们应该小心处理。由于这直接影响到内存的位置,对系统的性能有很大的影响。此外,它还会影响垃圾收集过程,导致整个系统效率低下。因此,仅在需要时才使用这些转换。
让我们以表格的形式来看上述差异。
序号 | 概念 | 差异 | |
等级 | 结构 | ||
1 | 可重用性 | 完全可重复使用 | 不可重复使用 |
2 | 能见度 | 类的所有函数对其对象都是可见的 | 结构的对象的数据对同一结构的其他对象不可见 |
三 | 按引用传递和按值传递 | 使用按引用传递 | 使用传递值 |
4 | 继承 | 一个类的函数可以被它的子类继承;允许继承 | 从不允许继承 |
5 | 默认可见性 | 默认情况下,类的所有成员都是私有的 | 默认情况下,结构的所有成员都是公共的 |
6 | 空时的大小 | 空类的大小为1字节 | 空结构的大小为0字节 |
7 | 垃圾收集 | 由于它使用按引用传递,所以可以进行垃圾收集 | 因为它使用传递值,所以不可能进行垃圾收集 |
8 | 内存管理 | 垃圾收集过程的简单性有助于有效的内存管理 | 缺少垃圾收**导致内存管理不善 |
9 | 施工人员 | 允许所有类型的构造函数,例如带参数或不带参数 | 只允许参数化构造函数 |
10 | 析构函数 | 我可以用它 | 不能使用它 |
11 | 成员变量初始化 | 允许直接初始化成员变量 | 不允许成员变量的直接word初始化 |
12 | 对象创建 | 在创建对象时必须使用关键字“new” | 在对象创建期间使用关键字“new”是可选的 |
13 | 何时使用? | 对于需要继承的较大和复杂对象更好 | 对于较小和更简单的对象,继承不那么重要。 |
我们几乎涵盖了类和结构之间的所有差异,如果您觉得缺少某些内容,请告诉我们。让我们一起学习,充分利用这些知识!
关键区别–类与实例变量 大多数现代编程语言都支持面向对象编程。对象包含数据或属性。一个物体有一定的行为。它们被称为方法。程序可以使用对象建模。软件是程序的集合。因此,可以使用对象来设计和实现软件。对...
关键区别——c语言中的类与结构# C是微软开发的一种现代的、通用的、高级的编程语言。它是一种类似于Java的编程语言。它包含强大的编程功能,如委托、索引器和语言集成查询。C的主要优点是它支持面向对象编程(OOP)...
班(class)和接口(interface)的区别 面向对象编程(OOP)是软件开发中的一种常见范式。它有助于使用类和对象为编程带来真实的场景。类是创建对象的蓝图。程序员可以用属性和方法创建一个类。学生和老师是客体。创建对象称...
...利用电灯开关,隐藏梯子,和安全系统黑客。 霓虹灯结构通常并不难,但它有利于完美主义 Neon Struct通常并不难,但它有利于完美主义,在每一节之后对你的表现进行评分——无论你是否触发警报,是否必须使任何敌人...
在线课程与传统课程 网络课堂和传统课堂是两种学习方式。它们都迎合了几乎相同的教育,并提供高质量的学习。你也将有老师,你将遵循课程大纲的教训,并在课程涉及考试。 在线课程通常是为独立学生开设的。你没有同...
在C语言中,结构和联合都是用户定义的数据类型,在概念上是相同的,但是它们在某些方面还是不同的,比如内存分配给成员的方式。它们的声明类似,但功能不同。它们允许用户在一个名称下组合不同的数据类型。当声明结...
主要区别种姓(main difference caste) vs. 班(class) 在这篇文章中,我们将看到两个主要的社会学关注点之间的差异;种姓和阶级。两者都与社会分层制度有关。根据种姓和阶级,人类被分为几个不同的群体。这两者都不是人类...
类和结构之间的主要区别在于,类是引用类型的数据类型,而结构是值类型的数据类型。 在编程中,变量是存储数据的存储区域。每个变量都有它可以存储的特定数据类型。主要有两种数据类型:值类型和引用类型。在值类型...
C++中结构和类的主要区别在于结构是一种值类型数据类型,而类是引用类型数据类型。 结构和类是C++中的两个编程概念。C++是一种高级的通用编程语言,它是C语言的超集,它由许多高级特征组成。数据主要有两种类型;它们是...
类和方法的主要区别在于,类是创建对象的蓝图或模板,而方法是描述对象行为的函数。 编程范式是一种解释程序元素组织方式的风格。面向对象编程(OOP)是一种常见的软件开发范式。开发人员可以将软件建模为一组对象,...