C++中vitual的用法总结
来源:互联网 发布:js中有多少循环 编辑:程序博客网 时间:2024/06/12 12:45
一、修饰成员函数
#include <iostream>using namespace std;class A{public:A(){}public: virtual void func1(){ cout << "A vitual"; } virtual void func2() { func1(); }};class B :public A{public:B(){}public: void func1(){ cout << "B vitual"; } void func2(){ func1(); }};int main(){ A *a = new B(); a->func2(); while (1); return 0;}
输出结果:
二、修饰类
#include <iostream>using namespace std;class A{public: A() { cout << "A构造" << endl; } ~A() { cout << "A析构" << endl; }};class B : virtual public A{public: B() { cout << "B构造" << endl; } ~B() { cout << "B析构" << endl; }};class C : virtual public A{public: C() { cout << "C构造" << endl; } ~C() { cout << "C析构" << endl; }};class D : public B, public C{public: D() { cout << "D构造" << endl; } ~D() { cout << "D析构" << endl; }};int main(){ D *d = new D(); delete d; while (1); return 0;}
执行结果:
类没有被vitual修饰时:
#include <iostream>using namespace std;class A{public: A() { cout << "A构造" << endl; } ~A() { cout << "A析构" << endl; }};class B : public A{public: B() { cout << "B构造" << endl; } ~B() { cout << "B析构" << endl; }};class C : public A{public: C() { cout << "C构造" << endl; } ~C() { cout << "C析构" << endl; }};class D : public B, public C{public: D() { cout << "D构造" << endl; } ~D() { cout << "D析构" << endl; }};int main(){ D *d = new D(); delete d; while (1); return 0;}
执行结果:
三、vitual修饰析构函数
#include <iostream>using namespace std;class A{public: A() { cout << "construct A" << endl; } virtual ~A() { cout << "destory A" << endl; } }; class B : public A{public: B() { cout << "construct B" << endl; } virtual ~B() { cout << "destory B" << endl; } };int main(){ A *a = new B(); delete a; while (10); return 0;}
执行结果:
阅读全文
0 0
- C++中vitual的用法总结
- C语言中define的用法总结
- C语言中宏的用法总结
- JSTL中<c:forEach>的用法总结
- 关于C语言中return用法的一些总结
- 【转载】C语言中extern的用法总结
- C++:STL中sort()函数的用法总结
- C/C++中输入带空格的字符串用法总结
- C/C++中关于typedef的用法总结
- C/C++语言中关于const用法的总结
- C/C++语言中关于const用法的总结
- C语言中const,volatile,restrict的用法总结
- Objective-C中系统宏的用法总结
- C/C++中const修饰符的用法总结
- C语言中const,volatile,restrict的用法总结
- 关于C/C++中typedef的定义与用法总结
- C/C++中输入带空格的字符串用法总结
- Vitual在继承中修饰成员函数
- codeforce 797A
- Tensorflow应用之简单验证码识别
- Hadoop本地开发,9000端口拒绝访问
- apache隐藏版本号
- GitHub详细教程
- C++中vitual的用法总结
- FFmpeg 音频相关专有名词详解
- for循环的简单应用及基础知识点
- 练习
- web for pentester XSS部分练习
- linux修改PATH环境变量四种方式
- mac os+python3+opencv3环境配置
- OpenCV环境配置(VS2015+WIN10x64+OpenCV3.2)
- 使用navicat工具无法连接MySQL数据库的解决方法