C++:继承

    技术2022-07-10  172

    多继承

    一个类可以继承至多个基类(也就是多继承,Java不行)

    class Rectangle: public Shape, public PaintCost { public: int getArea() { return (width * height); } };

    环状继承

     

     

    class D{......}; class B: public D{......}; class A: public D{......}; class C: public B, public A{.....};

    这样在C c时,会新建两个D对象,即D(), B(), D(), A(), C().

    使用虚拟继承解决此问题:

    class D{......}; class B: virtual public D{......}; class A: virtual public D{......}; class C: public B, public A{.....};

    只会执行D(), B(), A(), C().

    多继承时,子类想调用某一个父类的方法

    比如想调用父类A中的方法,可以使用:

    c.A::test();

    #include <stdio.h> #include <iostream> #include <windows.h> #include <time.h> using namespace std; class A {     public:         void test(){             cout << "A test()" << endl;         }; }; class B {     public:         boolean test(B b){             cout << "B test()" << endl;             return false;         }; }; class C:public A, public B{     public:         void test(){             cout << "C test()" << endl;         } }; int main() {     C c;     c.A::test();//A test()     system("pause");     return 0; }

    重载运算符和重载函数

    重载函数

    同名函数的形参(参数的个数、类型或者顺序)不同

    重载运算符 Box operator+(const Box& b) { Box box; box.length = this->length + b.length; return box; } box3 = box1 + box2; //即box3的box3.length=box1.length+box2.length

     

    Processed: 0.036, SQL: 9