普通成员函数调用虚函数
Posted 每天告诉自己要努力
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了普通成员函数调用虚函数相关的知识,希望对你有一定的参考价值。
#include <iostream>
using namespace std;
class A
public:
void func()
printFunc();
protected:
virtual void printFunc()
cout << "AAAA" << endl;
;
class B : public A
public:
void func()
printFunc();
protected:
virtual void printFunc()
cout << "BBBBB" << endl;
;
int main()
B b;
A* a = &b;
//这里的a是一个指向子类对象的父类指针
a->func();
cout << "11111" << endl;
b.func();
return 0;
当a调用func时,因为func不是虚函数,所以会根据指针类型走A类的实现。
但是在A类的成员函数func中,默认传入了a,a是一个指向子类对象的父类指针,因此会在A的func内发生多态,从而调用B类中的虚函数实现。
以上是关于普通成员函数调用虚函数的主要内容,如果未能解决你的问题,请参考以下文章