博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MFC中关于虚函数的一些问题
阅读量:4301 次
发布时间:2019-05-27

本文共 632 字,大约阅读时间需要 2 分钟。

这个是C++中虚函数以及多态性。 我们知道,如果派生类中重定义了基类中的虚函数,即使用基类的类型指针调用该函数,那么实际上连编的是派生类的函数。比如, class A { virtual void out() { printf("A");} } class B : public A { virtual void out() { printf("B");} } void main() { A* a = new B; a->out(); <== 调用的是B的out,而不是a的out,输出的实际上是 B。 delete a; } 这种派生类可以改变基类指针特性的行为,就被称为多态性。 然而,当派生类具有了新的特征,有些时候,我们仍然希望保留基类的特征,也就是说,我们希望能够调用基类定义的out函数,所以就出现了A::out()这样的语法,以便允许从派生类中直接调用基类实现的out虚函数。比如 class B : public A { virtual void out() { printf("B"); <== 输出B A::out(); <== 输出A,不是静态函数调用,而是基类虚函数调用。 } } void main() { A* a = new B; a->out(); <== 调用的是B的out,输出的实际上是 BA a->A::out(); <== 还可以这样调用,现在a类型指针可以直接调用自身实现的out,输出的是 A delete a; }

转载地址:http://bcmws.baihongyu.com/

你可能感兴趣的文章
Eclipse-Mybatis-generatorConfig.xml
查看>>
SpringBoot-Feign
查看>>
Eclipse-maven项目不将resources下的文件打到classpath下
查看>>
SpringMvc-ResponseBodyAdvice接口与@ControllerAdvice注解
查看>>
Java的匿名内部类
查看>>
浅谈异常与恋爱
查看>>
java中的反射总结
查看>>
java中的泛型总结
查看>>
java中的正则操作总结
查看>>
java中的IO操作总结(一)
查看>>
java中的IO操作总结(二)
查看>>
java中的IO操作总结(三)
查看>>
java中的IO操作总结(四)
查看>>
Java 内部类种类及使用解析
查看>>
匿名内部类精讲
查看>>
如何在ubuntu下设置永久的alias别名
查看>>
Apache与Nginx的优缺点比较
查看>>
3种PHP连接MYSQL数据库的常用方法
查看>>
linux命令(6) zip/unzip及tar压缩与解压文件命令笔记
查看>>
linux命令(7)ubuntu的vim命令用法
查看>>