1、在虚函数实现中直接通过父类调用
BaseFrame::print();
2、通过对象指针调用
print = new PrintObject();
print->print();
print->BaseFrame::print();
3 、测试
#ifndef BASEFRAM_H#define BASEFRAM_H#include <QObject>#include <iostream>using namespace std;class BaseFram{public:explicit BaseFram(){ cout << "this is base frame construct" << endl; }virtual ~BaseFram(){ cout << "this base frame ~ delet\n";}virtual void print(){ cout << "this is base frame"; }};class PrintObject: public BaseFram{public:explicit PrintObject():BaseFram(){ cout << "this is print construct" << endl; }virtual ~PrintObject() override{ cout << "this is print ~ delet\n";}virtual void print() override { BaseFram::print();cout << endl;cout << "this is print object\n";}};class Test{public:Test(){print = new PrintObject();print->print();print->BaseFram::print();// PrintObject test_p;// test_p.print();}~Test(){cout << "this test ~ delete \n";if(print) {delete print;print = nullptr;}}private:BaseFram* print;};#endif // BASEFRAM_H
4、main
#include <QCoreApplication>#include "basefram.h"int main(int argc, char *argv[]){Test test;// QCoreApplication a(argc, argv);// PrintObject print;// print.print();// Test test;// return a.exec();}
5、输出
this is base frame constructthis is print constructthis is base framethis is print objectthis is base framethis test ~ deletethis is print ~ deletthis base frame ~ delet