C语言的结构和C++类的异同
学过C++的人一定知道类是什么,精通C的人也一定知道什么是结构,作为一名C语言的初学者的我,不仅产生了一些疑问:什么叫结构,什么是类?有人说他们长的很像,为什么这么说呢?他们之间有什么联系呢?但他们毕竟一个叫结构另一个叫类,他们又有什么区别呢?带着这些问题,我浅浅的了解了一下C语言的结构和C++的类。 首先我们要知道什么是结构什么是类: 结构是用同一个名字引用的相关的集合(或称聚合题),它是用其他类型的对象构造出来的派生数据类型。 说到派生,其实也不难理解: 结构中可包含多种不同数据类型的变量,如:int型的,float型的,char型的,long型的,甚至数组合指针,以及自引用指针等等,结构中包含有这些数据类型的变量,所以说结构是派生而来。 结构实例:
在struct后边的player就变成了像int,一样的声明符。
数组与结构一瞥:
结构初始化: 结构初始化有两种: 1. 用初始化列表初始化,即在声明结构变量时,在变量明后用等号连接在花括号中的初始化值列表来初始化该结构变量,初始化值用逗号分开。例如: struct player A={5,“Xiaogang”,“China”}; 2. 利用访问结构成员初始化。 例如:
像构造枚举和结构一样,类也是一种用户自己构造的数据类型,类是在C++下的,所以类遵循C++的规定。C++中声明的一般形式为:
私有(Private)成员,只有在类中说明的函数才能访问该类的私有成员,而在该类外的函数不可以访问私有成员;公有(Public)成员,类外面也可访问公有成员,成为该类的接口;还有一种是保护(Protected)成员,这种成员只有该类的派生类可以访问,其余的在这个类外不能访问。 从上图可以看出,类与结构既有相似又有不同,class似与struct一样是声明一个聚合体,而且类也有数据成员,但是类声明的对象的初始化则与结构大相径庭,(对象的初始化使用构造函数来完成的,构造函数将在后边介绍)结构中没有像类一样的如public这样的权限,结构中是不可以有函数的,而类中可以存在函数。 构造函数: *“构造函数”是一个特殊的成员函数,不要把它理解为构造一个函数,在c++中构造函数一般与类的名字相同。
此上为构造函数简单用法。既然说到了构造函数,也就跑不了析构函数。在对象消失时,析构函数将释放由构造函数分配的内存。一般用于类通明的函数名,没有参数,并在函数前面加上“~”号。如:~circle(); 从已有的对象类型出发建立一种新的对象类型,使它继承原对象的特点和功能,这种思想是面向对象设计的主要贡献。 从一个或多个以前定义的类产生型类的过程称为派生,这个新类又成为派生类。类的继承是指新类从基类那里得到的特征,也就是继承基类的数据和函数。继承和派生类不难理解,在我们生活中继承的例子不胜枚举。 如:中学生、大学生继承学生的性质;输入输出设备继承输入设备和输出设备的性质和特点。 可见,类要比结构功能强,性质多,类中存在函数,可以看作是一个活生生的生物,它可以做一系列动作,甚至可以继承;而结构好像是一个“笔记本”,她只记录了物体的一些性质。我作为一个初学者,是以结构为引子,了解了一些c++的类,涉入不深,还请高手多提建议! |
- 上一篇:基于OpenGL动画设计研究与实现
- 下一篇:Linux下C开发环境的构成和安装