c++多态实现与虚函数
发布日期:2021-11-13 20:28:13
浏览次数:2
分类:技术文章
本文共 1109 字,大约阅读时间需要 3 分钟。
#include#include #include #include using namespace std; //如果delete后边跟父类的指针则只会执行父类的析构函数,如果delete后面跟的是子类的指针,那么它即会执行子类的析构函数,也会执行父类的析构函数 //virtual在函数中的使用限制 // 普通函数不能是虚函数,也就是说这个函数必须是某一个类的成员函数,不可以是一个全局函数,否则会导致编译错误。 // 静态成员函数不能是虚函数 static成员函数是和类同生共处的,他不属于任何对象,使用virtual也将导致错误。 // 内联函数不能是虚函数 如果修饰内联函数 如果内联函数被virtual修饰,计算机会忽略inline使它变成存粹的虚函数。 // 构造函数不能是虚函数,否则会出现编译错误。 //将父类的的析构函数设置成虚函数,这样父类指针指向的是哪个对象,哪个对象的构造函数就会先执行,然后执行父类的构造函数。销毁的时候子类的析构函数也会执行。 class A { private: int m; public: void first() { printf("A1\n"); } virtual void second() { printf("A2\n"); } A(const A& other) { cout<<"A 拷贝构造"< first(); p->second(); //A *p = &b; //父类的指针指向子类的引用 //p->first(); //A1 //p->second(); //B4 //实现多态 //B* p = (B*)&a; //p->first(); //B3 //p->second(); //A2 //成员函数属于类不属于对象 B 中的second其实也是虚函数 若A类中实现了second 则调用自己的second system("pause"); return 0; }
转载地址:https://blog.csdn.net/lpl312905509/article/details/100899180 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年03月30日 13时38分13秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Unity3D Shader 入门
2021-06-30
MSDK手Q邀请透传参数问题:url编解码与base64编解码
2021-06-30
svn提交的一个坑
2021-06-30
eclipse识别不了模拟器解决办法
2021-06-30
unity mesh合并
2021-06-30
谈谈类之间的关联关系与依赖关系
2021-06-30
unity5.x assetbundle打包和加载
2021-06-30
C#用正则表达式去匹配被双引号包起来的中文
2021-06-30
lua table排序
2021-06-30
Unity发布的ios包在iphone上声音是从听筒里出来的问题
2021-06-30
UIScrollView复用节点示例
2021-06-30
Unity 5 AudioMixer
2021-06-30
Unity 代码混淆: CodeGuard的使用
2021-06-30
UGUI 列表循环使用
2021-06-30
使用命令行运行unity并执行某个静态函数(运用于命令行打包和批量打包)
2021-06-30
web.py框架
2021-06-30
web.py学习笔记
2021-06-30
python的代码缩进
2021-06-30
A* Pathfinding Project (Unity A*寻路插件) 使用教程
2021-06-30