C++虚函数
来源:互联网 发布:王洛宾与三毛 知乎 编辑:程序博客网 时间:2024/06/06 02:54
1. 子类在构造时调用基类的构造函数
#include<iostream>using namespace std;class base{public:base(){cout<<"Base Constract"<<endl;}virtual void fun(){cout<<"Base call"<<endl;}virtual void anfun(){cout<<"Base another call"<<endl;}};class derive: public base{public:derive(){cout<<"Derive Constract"<<endl;}void fun(){cout<<"Derive call"<<endl;}};int main(){derive *b = new derive();//b->fun();//b->anfun();return 0;}
析构函数不是这样的,如果基类的析构函数是非虚的,则析构时只掉用基类的虚析构函数,这样会产生析构的问题,如下面这个代码:
#include<iostream>using namespace std;class A{public: A() { ptra_ = new char[10];} ~A() { delete[] ptra_;} private: char * ptra_;};class B: public A{public: B() { ptrb_ = new char[20];} ~B() { delete[] ptrb_;}private: char * ptrb_;};void foo(){ A * a = new B; delete a;}
2. 基类指针构造的子类对象,如果积累函数不是虚函数,则调用基类函数,不调用子类函数。
#include<iostream>using namespace std;class base{public:base(){cout<<"Base Constract"<<endl;}void fun(){cout<<"Base call"<<endl;}virtual void anfun(){cout<<"Base another call"<<endl;}};class derive: public base{public:derive(){cout<<"Derive Constract"<<endl;}void fun(){cout<<"Derive call"<<endl;}};int main(){base *b = new derive();b->fun();//b->anfun();return 0;}
3. 子类函数的指针新建的子类对象,调用函数先调用子类函数,如果子类没有,调用基类函数
#include<iostream>using namespace std;class base{public:base(){cout<<"Base Constract"<<endl;}void fun(){cout<<"Base call"<<endl;}virtual void anfun(){cout<<"Base another call"<<endl;}};class derive: public base{public:derive(){cout<<"Derive Constract"<<endl;}void fun(){cout<<"Derive call"<<endl;}};int main(){derive *b = new derive();b->fun();b->anfun();return 0;}
- C/C++--虚函数
- 【C/C++】纯虚函数
- C/C++, 虚函数表
- C++:虚函数用途
- 虚函数详解(C++)
- 虚函数(C++)
- c++-->虚函数 2
- C++ 虚函数
- C++:虚函数
- C++_虚函数
- 【c++】虚函数
- 【C++】虚函数
- C++ 虚函数
- [C++]虚函数
- 虚函数 假多态 C++
- C/C++ 虚函数
- C++:虚函数理解
- C++---虚函数
- 微博搜索:社会化商业竞争利器
- 你必须了解的Session的本质
- 换卡或不插卡时删除通话记录
- Wince下动态调用动态链接库方法
- hust 校赛 Substring
- C++虚函数
- 黑马程序员-java加强-代理
- _ConnectionPtr _CommandPtr _RecordsetPtr 释放资源
- iOS开发-从学习到产品/推广 全面总结
- 静音模式下,来闹钟能响铃。
- win7更改文件夹背景图片和文件夹背景色
- iBatis入门
- HTTP状态码大全
- 私有api实现删除图片时的动画