1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- //4.6.7 多继承语法
- //C++允许一个类继承多个类
- //语法:class 子类:继承方式 父类1 , 继承方式 父类2...
- //多继承可能会引发父类中有同名成员出现,需要加作用域区分
- //C++实际开发中不建议使用多继承
- #include <iostream>
- class Base1
- {
- public:
- Base1()
- {
- m_A = 100;
- }
- int m_A;
- };
- class Base2
- {
- public:
- Base2()
- {
- m_A = 200;
- }
- int m_A;
- };
- //子类 需要继承Base1 和 Base2
- class Son :public Base1, public Base2
- {
- public:
- Son()
- {
- m_C = 300;
- m_D = 400;
- }
- int m_C;
- int m_D;
- };
- void test01()
- {
- Son s;
- std::cout << "sizeof Son = " << sizeof(Son) << std::endl;
- //当父类中出现同名成员 需要加作用域区分
- std::cout << "Base1::m_A = " << s.Base1::m_A << std::endl;
- std::cout << "Base2::m_B = " << s.Base2::m_A << std::endl;
- }
- int main()
- {
- test01();
- system("pause");
- return 0;
- }
- //多继承中如果父类中出现了同名情况,子类使用的时候要加作用域
|