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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C/C++ 实现随机数
下一篇:linux 静态库的制作

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年03月30日 13时38分13秒