观察基类与派生类中成员函数的调用
一、问题描述。
用对象和指针来观察基类与派生类中成员函数的调用。
二、设计思路。
1、定义一个拥有fn1,fn2两个成员函数的基类BaseClass
2、由基类BaseClass派生出一个同样拥有fn1,fn2两个成员函数的派生类DerivedClass
3、在主函数中声明一个派生类的对象,及基类与派生类的指针
4、观察运行结果
三、程序流程图
四、代码实现。
#pragma once
#include<iostream>
using namespace std;
class BaseClass
{
public:
BaseClass();
~BaseClass();
void fn1();
void fn2();
};
#include "BaseClass.h"
BaseClass::BaseClass()
{
}
BaseClass::~BaseClass()
{
}
void BaseClass::fn1()
{
cout << "base.fn1()" << endl;
}
void BaseClass::fn2()
{
cout << "base.fn2()" << endl;
}
#pragma once
#include"BaseClass.h"
class DerivedClass:public BaseClass
{
public:
DerivedClass();
~DerivedClass();
void fn1();
void fn2();
};
#include "DerivedClass.h"
DerivedClass::DerivedClass()
{
}
DerivedClass::~DerivedClass()
{
}
void DerivedClass::fn1()
{
cout << "Derived.fn1()" << endl;
}
void DerivedClass::fn2()
{
cout << "Derived.fn2()" << endl;
}
#include<iostream>
#include "DerivedClass.h"
using namespace std;
int main()
{
DerivedClass a;
BaseClass b;
DerivedClass c;
BaseClass *pb=&b;
DerivedClass *pd=&c;
cout << "用对象调用" << endl;
a.fn1(); a.fn2();
cout << "用BaseClass指针调用" << endl;
pb->fn1(); pb->fn2();
cout << "用DerivedClass指针调用" << endl;
pd->fn1(); pd->fn2();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通