静态函数成员(static)
如果把函数成员声明为静态的,就可以把函数与类的任何特定对象独立开来。静态成员函数即使在类对象不存在的情况下也能被调用,静态函数只要使用类名加范围解析运算符 :: 就可以访问。
静态成员函数只能访问静态数据成员,不能访问其他静态成员函数和类外部的其他函数。
静态成员函数有一个类范围,他们不能访问类的 this 指针。您可以使用静态成员函数来判断类的某些对象是否已被创建。
C++ 继承
依据另一个类来定义一个类。不需要重新编写新的数据成员和成员函数,只需指定新建的类(派生类)继承了一个已有的类(基类)的成员
形式如下:
class derived-class: access-specifier base-class
如:class Rectangle: public Shape
特殊形式:多继承即一个子类可以有多个父类,它继承了多个父类的特性。
class <派生类名>:<继承方式1><基类名1>,<继承方式2><基类名2>,…
{
<派生类类体>
};
C++ 多态:
当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。
会用到虚函数virtual
virtual int area()
{
<基类类体>
};
虚函数 是在基类中使用关键字 virtual 声明的函数。在派生类中重新定义基类中定义的虚函数时,会告诉编译器不要静态链接到该函数。我们想要的是在程序中任意点可以根据所调用的对象类型来选择调用的函数,这种操作被称为动态链接,或后期绑定。
virtual int area() = 0;
告诉编译器,函数没有主体,上面的虚函数是纯虚函数