继承是C中的一个重要特性它可以让我们从一个类的部分成员继承并新建立一个类class 派生类名 : 继承方式(public/protected/private) 基类名例如//基类 class Animal{ eat(); sleep(); } //派生类 class Dog : public Animal{ bark(); //此时Dog类就继承了Animal类的eat和sleep两个成员函数 }派生类可以访问基类的所有非私有成员因此如果不想被派生类访问某些成员应该在基类中将这部分成员私有。派生类可以继承所有基类的成员函数但不包括以下几种情况基类的构造函数、析构函数和拷贝构造函数基类的重载运算符基类的友元函数C的多态C的多态按字面意思理解就是多种形态。当类之间存在层次结构并且类之间是通过继承关联时就会用到多态。C的多态意味着在调用成员函数是会根据调用函数的对象的类型不同执行不同的函数。简而言之就是“一种接口多种方法”。 C运行时的多态性是通过虚函数实现的。 即虚函数允许子类重新定义成员函数而子类重新定义父类的做法成为覆盖(Override)。程序实例如下#include iostream using namespace std; class Shape{ protected: int width, height; public: Shape(int a0, int b0){ width a; height b; } virtual int area(){ cout Parent class area: endl; return 0; } }; class Rectangle: public Shape{ public: Rectangle(int a0, int b0):Shape(a, b){ } int area(){ cout Rectangle class area: endl;不可重载运算符成员访问运算符. 成员指针访问运算符 .* , - * 域运算符: :: 长度运算符sizeof 条件运算符? 预处理运算符#可重载的运算符双目算术运算符, -, *, /** 关系运算符 , !, , , , 逻辑运算符 ||, , ! 单目运算符 (正), -(负), *(指针), (取地址) 自增自减运算符 , -- 位运算符 |, , ~(按位取反), ^(按位异或), , 赋值运算符 , , -, * , /, %, , |, ^, , 空间申请与释放new, delete, new[], delete[] 其他运算符: ()(函数调用), -(成员访问), ,(逗号), [](下标)多继承C中一个子类可以有多个父类即多继承。多继承的格式如下所示基类之间用逗号隔开class 派生类名:继承方式1基类名1,继承方式2基类名2,... { 派生类体 }运算符重载C内大部分运算符都可以被重载其为一种特殊的函数函数名为operator后紧跟被重载的运算符例如对A类重载加号运算符A operator(const A); //可以用this指针节省一个加运算过程中调用的输入完整实例#include iostream using namespace std; class Box { public: double getVolume(void){ return length*breadth*height; } void setSize(double l, double b, double h){ length l; breadth b; height h; } // 重载 运算符用于把两个BoX对象相加 Box operator(const Box b){ Box box; box.length this-length b.length; box.breadth this-breadth b.breadth; box.height this-height b.height return box; } private: double length; double breadth; double height; } int main(){ Box box1, box2, box3; box1.setSize(5.0, 6.0, 7.0); box2.setSize(1.0, 2.0, 3.0); box3 box1 box2; return 0; }注意事项运算符重载不可以改变语法结构 运算符重载不可以改变操作数的个数 运算符重载不可以改变优先级 运算符重载不可以改变结合性继承的分类当一个类派生自基类该类的访问修饰符有三种类型 public, protected, private。通常情况下我们不使用protected和private继承而是采用public来继承。当不同类型的继承时其继承情况如下公有继承当一个类派生自public基类时基类的public成员也是派生类的public成员基类protected成员也是派生类的protected成员基类的private成员不能直接被派生类访问但是可以通过基类的public和protected成员来访问。 保护继承当一个类派生自protected的基类时基类的public和protected成员将成为派生类的protected成员。 私有继承当一个类派生自private的基类时基类的public和protected成员将成为派生类的private成员