类是一种将抽象转换为用户定义类型的C++工具。它将数据表示和操纵数据的方法组合成一个整体。类的基本思想是数据抽象和封装。
类声明:以数据成员的方式描述数据部分,以成员函数(被称为方法)的方式描述接口函数。类声明用class关键字,一般写在h文件中。
class 类名称(通常类名称的首字母大写)
{
public:
公有成员(外部接口)
private:
私有成员 (只允许本类中的函数访问,而类外部的任何函数都不能访问)
protected:
保护成员(与private类似,差别表现在继承与派生时)
};
特殊的指针this指针,this指针指向用于调用成员函数的对象,或者说是this是对象的地址。
构造函数的名字与类名相同,不含有返回类型,甚至不能有void修饰。用构造函数创建对象之后,程序跟踪该对象直到其过期为止,当对象过期时,程序会自动调用一个特殊的成员函数完成清理工作。这个函数就是析构函数。
为了保证数据的安全,避免类的成员函数不修改对象的值,应该尽量将成员函数定义为const成员函数。
static数据成员属于整个类,不属于某个对象。所以只是在类作用域中起作用,不会与全局域中的名字冲突。并且这个类的所有对象共同访问,虽然如此,看起来特别的公有化,但是依然可以实现信息隐藏。
典型的使用样例是对象计数器,用来统计有多少个对象。使用时可以在构造函数时count++,在析构函数里面count--。
static数据成员的定义:
static int obj;
数据成员不属于某个特定的对象,因而不能在构造函数中初始化,必须在类外一定义完类就初始化。
static const int a=2;静态常量数据成员则必须在类中进行初始化。
访问:
(1)成员访问运算符"."、"->"。
(2)类名限定的静态成员名:类名::count;
static成员函数:
static int getcount(){ };
静态成员函数只能访问static类型数据成员。
类总结
