1、 什么是类?
面向对象系统由一组交互的对象构成,每个对象有自己的属性和行为,对象所属的类型成为类,类是对一组具有相同属性和行为对象的抽象。
类的基本思想是数据抽象和封装。类可以具有数据成员,也可以具有成员函数。
结构体内的函数被称为成员函数,结构体中的数据则称为数据成员。这样的结构体就是类,这种结构体类型变量被称为对象。
2、定义类
定义类的方法和定义结构体差不多,很多用法都和之前学习的struct结构体类似。
class X
{
private:
int a;
int b;
public:
int c;
int d;
protected:
int e;
int f;
};
其中public为公有成员声明,private为私有成员声明,protected为被保护成员声明。struct默认访问限制是public,且public在程序的任何函数或类中都可以被访问,但是private成员只能由类自己的成员函数或友元(可以访问私有成员,但是一般不建议使用,这样定义私有成员就没有意义了)访问,protected成员的访问全向介于public和private之间,它可以由类自己的成员函数,友元,派生类成员访问。注:如果class的成员没有设置访问限定符,则默认为private)类中也可以出现函数,比如
class X
{
private:
int a;
int b;
public:
int c();
int d;
protected:
int e;
int f;
};
构造函数和析构函数
构造函数:
是一种他特殊的成员函数,能够在创建对象时被自动调用,负责对象的初始化。
构造函数初始化列表
成员 1 (初始值 1)[,成员二 2(初始值2)…]
委托构造函数
委托构造函数使用所属类的其他构造函数执行自己的初始化过程,或者说他把自己的一些其他构造函数。
析构函数
负责在对象生存期结束时返回相关资源和自动释放资源。当对象离开作用域时,或者用delete释放在堆上创建的对象时,析构函数都会被自动调用。