像构造枚举和结构一样,类也是一种用户自己构造的数据类型,类是在C++下的,所以类遵循C++的规定。C++中声明的一般形式为:
class 类名 { 私有数据和函数 /*如果没有使用关键字,则所有成员默认private:为 private权限*/
私有数据和函数 public: 共有数据和函数 protected: 保护数据和函数 }; |
私有(Private)成员,只有在类中说明的函数才能访问该类的私有成员,而在该类外的函数不可以访问私有成员;公有(Public)成员,类外面也可访问公有成员,成为该类的接口;还有一种是保护(Protected)成员,这种成员只有该类的派生类可以访问,其余的在这个类外不能访问。
从上图可以看出,类与结构既有相似又有不同,class似与struct一样是声明一个聚合体,而且类也有数据成员,但是类声明的对象的初始化则与结构大相径庭,(对象的初始化使用构造函数来完成的,构造函数将在后边介绍)结构中没有像类一样的如public这样的权限,结构中是不可以有函数的,而类中可以存在函数。
构造函数:
*“构造函数”是一个特殊的成员函数,不要把它理解为构造一个函数,在c++中构造函数一般与类的名字相同。
class circle { private: int r; /*一个圆的搬进是圆的数据成员(圆性质)*/ public: circle(int i); }; /*定义一个圆类*/ include <iostream.h> circle::circle(int i){ /*"::"是类运算符,只要记住‘.’和‘->’是用于对象的,"::" 是用于类的成员的*/ r=i; } /*定义构造函数*/
main(){ circle(6); /*初始化了r=6*/ } |
此上为构造函数简单用法。既然说到了构造函数,也就跑不了析构函数。在对象消失时,析构函数将释放由构造函数分配的
内存。一般用于类通明的函数名,没有参数,并在函数前面加上“~”号。如:~circle();
从已有的对象类型出发建立一种新的对象类型,使它继承原对象的特点和功能,这种思想是面向对象
设计的主要贡献。
从一个或多个以前定义的类产生型类的过程称为派生,这个新类又成为派生类。类的继承是指新类从基类那里得到的特征,也就是继承基类的数据和函数。继承和派生类不难理解,在我们生活中继承的例子不胜枚举。
如:中学生、大学生继承学生的性质;输入输出设备继承输入设备和输出设备的性质和特点。

可见,类要比结构功能强,性质多,类中存在函数,可以看作是一个活生生的生物,它可以做一系列动作,甚至可以继承;而结构好像是一个“
笔记本”,她只记录了物体的一些性质。我作为一个初学者,是以结构为引子,了解了一些c++的类,涉入不深,还请高手多提建议!