C/C++ 类和结构体的差别

初学c++,想知道c++中的类和结构体有什么区别?请各位高手指点一二!... 初学c++,想知道c++中的类和结构体有什么区别?请各位高手指点一二! 展开
 我来答
豆哥的每一天
2018-10-04 · TA获得超过1.3万个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

C/C++ 类和结构体的的区别:

1、结构体基本用在很多数据,需要一个结构体来封装这些数据。而类的话,是面向对象的思想,可以有很多接口让人调用,私有变量等外部不能调用,还有保护类型的变量。

2、结构体也可以被认为是一种特殊的类,它不存在任何函数,构造和析构函数也没有,而且是一个公共的的类。

3、结构体在默认情况下成员是公共的(public),类在默认情况下成员是私有的(private)。

4、C++结构体内部成员变量及成员函数默认的访问级别是public,而c++类的内部成员变量及成员函数的默认访问级别是private。

5、C++结构体的继承默认是public,而c++类的继承默认是private。

6、类要加上public变成共有的才能被访问,而结构本身就是共有的可直接访问。

7、C定义结构体变量时需要加struct关键字,C++中定义结构体变量时可以不加struct关键字。

扩展资料:

世界上第一种计算机高级语言是诞生于1954年的FORTRAN语言。之后出现了多种计算机高级语言。1970年,AT&T的Bell实验室的D.Ritchie和K.Thompson共同发明了C语言。研制C语言的初衷是用它编写UNIX系统程序,因此,它实际上是UNIX的“副产品”。它充分结合了汇编语言和高级语言的优点,高效而灵活,又容易移植。

1971年,瑞士联邦技术学院N.Wirth教授发明了Pascal语言。Pascal语言语法严谨,层次分明,程序易写,具有很强的可读性,是第一个结构化的编程语言。

20世纪70年代中期,Bjarne Stroustrup在剑桥大学计算机中心工作。他使用过Simula和ALGOL,接触过C。他对Simula的类体系感受颇深,对ALGOL的结构也很有研究,深知运行效率的意义。既要编程简单、正确可靠,又要运行高效、可移植,是Bjarne Stroustrup的初衷。以C为背景,以Simula思想为基础,正好符合他的设想。1979年,Bjame Sgoustrup到了Bell实验室,开始从事将C改良为带类的C(C with classes)的工作。

1983年该语言被正式命名为C++。自从C++被发明以来,它经历了3次主要的修订,每一次修订都为C++增加了新的特征并作了一些修改。第一次修订是在1985年,第二次修订是在1990年,而第三次修订发生在c++的标准化过程中。在20世纪90年代早期,人们开始为C++建立一个标准,并成立了一个ANSI和ISO(Intemational Standards Organization)国际标准化组织的联合标准化委员会。该委员会在1994年1月25曰提出了第一个标准化草案。在这个草案中,委员会在保持Stroustrup最初定义的所有特征的同时,还增加了一些新的特征。

在完成C++标准化的第一个草案后不久,发生了一件事情使得C++标准被极大地扩展了:Alexander stepanov创建了标准模板库(Standard Template Library,STL)。STL不仅功能强大,同时非常优雅,然而,它也是非常庞大的。在通过了第一个草案之后,委员会投票并通过了将STL包含到C++标准中的提议。STL对C++的扩展超出了C++的最初定义范围。虽然在标准中增加STL是个很重要的决定,但也因此延缓了C++标准化的进程。

委员会于1997年11月14日通过了该标准的最终草案,1998年,C++的ANSI/IS0标准被投入使用。通常,这个版本的C++被认为是标准C++。所有的主流C++编译器都支持这个版本的C++,包括微软的Visual C++和Borland公司的C++Builder。

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

参考资料:百度百科-C++

反面时光
高粉答主

2018-09-08 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:74
采纳率:0%
帮助的人:1.9万
展开全部

C/C++ 类和结构体的的区别:


1、结构体基本用在很多数据,需要一个结构体来封装这些数据。而类的话,是面向对象的思想,可以有很多接口让人调用,私有变量等外部不能调用,还有保护类型的变量。


2、结构体也可以被认为是一种特殊的类,它不存在任何函数,构造和析构函数也没有,而且是一个公共的的类。


3、结构体在默认情况下成员是公共的(public),类在默认情况下成员是私有的(private)。


4、C++结构体内部成员变量及成员函数默认的访问级别是public,而c++类的内部成员变量及成员函数的默认访问级别是private。

5、C++结构体的继承默认是public,而c++类的继承默认是private。

6、类要加上public变成共有的才能被访问,而结构本身就是共有的可直接访问。


7、C定义结构体变量时需要加struct关键字,C++中定义结构体变量时可以不加struct关键字。

扩展资料:

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tsingjun
2009-09-03 · 超过35用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:116万
展开全部
C++类和结构体概念基本一致,区别是C++中类成员默认访问是private,结构体是public

C中结构体就是结构体,只有数据成员,不能有成员函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ailacy
2009-09-03 · TA获得超过112个赞
知道答主
回答量:60
采纳率:0%
帮助的人:42.2万
展开全部
区别在于默认的访问标号不同:如果类中某成员的定义之前没有出现任何访问标号,则在用class关键字定义的类中,该成员默认为private成员;而在用struct关键字定义的类中,该成员默认为public。

参考资料: C++ primer

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友295f3a590
2009-09-03 · 超过29用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:86.7万
展开全部
准确的说,结构体是一种特殊的类,它不存在任何函数,构造和析构函数也没有,而且是一个公共的的类
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(12)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式