C++的继承与多态demo
来源:互联网 发布:安卓能看优酷的软件 编辑:程序博客网 时间:2024/05/21 05:41
继承(非virtual方式继承):
- #include <iostream>
-
- class A
- {
- public:
- void fun() { std::cout << "A::fun()" << std::endl; }
- };
-
- class B: public A
- {
- public:
- void fun() { std::cout << "B::fun()" << std::endl; }
- void fun2() { std::cout << "B::fun2()" << std::endl; }
- };
-
- void main(void)
- {
- A a;
- a.fun(); // A::fun()
-
- B b;
- b.fun(); // B::fun()
- b.fun2(); // B::fun2()
-
- A* rA = &b;
- rA->fun(); // A::fun()
- std::cout << &b << " " << rA << std::endl;
-
- B* rB = static_cast<B*> (&a);
- rB->fun(); // B::fun()
- rB->fun2(); // B::fun2()
- std::cout << &a << " " << rB << std::endl;
-
- system("pause");
- }
多态:
- #include <iostream>
-
- class A
- {
- public:
- virtual void fun(void) { std::cout << "A::fun()" << std::endl; }
- };
-
- class B: public A
- {
- public:
- void fun(void) { std::cout << "B::fun()" << std::endl; }
- void fun2(void) { std::cout << "B::fun2()" << std::endl; }
- };
-
- void main(void)
- {
- A a;
- a.fun(); // A::fun()
-
- B b;
- b.fun(); // B::fun()
- b.fun2(); // B::fun2()
-
- A* rA = &b;
- rA->fun(); // B::fun()
-
- B* rB = static_cast<B*> (&a);
- rB->fun(); // A::fun()
- rB->fun2(); // B::fun2()
-
- system("pause");
- }
- C++的继承与多态demo
- C++--继承与多态
- C语言下的封装、继承与多态
- C语言模拟实现C++的继承与多态
- C语言模拟实现C++的继承与多态
- C语言实现C++的封装继承与多态
- C语言模拟实现C++的继承与多态
- C中的继承与多态
- C#(二) -继承与多态
- 【C#】C#继承与多态
- Objective-c:封装、继承与多态
- C语言实现继承与多态
- trait 继承的Demo
- ES6 继承、多态简单demo
- 【继承与多态】C++:继承中的赋值兼容规则,子类的成员函数,虚函数(重写),多态
- 【继承与多态】C++:继承中的赋值兼容规则,子类的成员函数,虚函数(重写),多态
- 使用继承的多态(C#)
- 【C/C++学院】(10)重载与重写/多态的深入/多继承接口
- 模式对话框。。
- C++里的静态成员函数为何不能用const?
- 类模板练习
- VS2005下各基本类型的size
- C++对象布局及多态实现的探索
- C++的继承与多态demo
- C++中的this指针
- 多重继承的虚函数表与类型转换
- 通过虚函数表访问private成员
- 加密解密小程序
- MD5加密小程序
- 定时启动线程
- ThreadPoolExecutor的使用
- java.lang.String.split()中的|