VS之多态虚函数的实现
来源:互联网 发布:安卓framework源码 编辑:程序博客网 时间:2024/06/10 02:58
本文简单地介绍下如何使用多态和虚函数实现程序的调用。
使用工具:VS2008
使用语言:C++
开发步骤:
1.新建对话框程序
2.添加基类,写一个虚函数
Person.h
#pragma onceclass CPerson{public:CPerson(void);~CPerson(void);public:virtual void Eat();};
Person.cpp
#include "StdAfx.h"#include "Person.h"CPerson::CPerson(void){}CPerson::~CPerson(void){}void CPerson::Eat(){AfxMessageBox(_T("有个人吃了些水果..."));}
3.添加派生类,重写虚函数
Old.h
#pragma once#include "person.h"class COld : public CPerson{public:COld(void);~COld(void);public:void Eat();};
Old.cpp
#include "StdAfx.h"#include "Old.h"COld::COld(void){}COld::~COld(void){}void COld::Eat(){AfxMessageBox(_T("年长者吃了些香蕉..."));}
Youth.h
#pragma once#include "person.h"class CYouth : public CPerson{public:CYouth(void);~CYouth(void);public:void Eat();};
Youth.cpp
#include "StdAfx.h"#include "Youth.h"CYouth::CYouth(void){}CYouth::~CYouth(void){}void CYouth::Eat(){AfxMessageBox(_T("年青人吃了些苹果..."));}
Child.h
#pragma once#include "person.h"class CChild : public CPerson{public:CChild(void);~CChild(void);public:void Eat();};
Child.cpp
#include "StdAfx.h"#include "Child.h"CChild::CChild(void){}CChild::~CChild(void){}void CChild::Eat(){AfxMessageBox(_T("小家伙吃了些葡萄..."));}
4.添加消息响应事件
VirtualFunctionDemoDlg.h
public:afx_msg void OnBnClickedBtnPerson();afx_msg void OnBnClickedBtnOld();afx_msg void OnBnClickedBtnYouth();afx_msg void OnBnClickedBtnChild();
VirtualFunctionDemoDlg.cpp
void CVirtualFunctionDemoDlg::OnBnClickedBtnPerson(){//Person COld CYouth CChildCPerson* pPerson = NULL;pPerson = new CPerson;pPerson->Eat();}void CVirtualFunctionDemoDlg::OnBnClickedBtnOld(){CPerson* pPerson = NULL;pPerson = new COld;pPerson->Eat();}void CVirtualFunctionDemoDlg::OnBnClickedBtnYouth(){CPerson* pPerson = NULL;pPerson = new CYouth;pPerson->Eat();}void CVirtualFunctionDemoDlg::OnBnClickedBtnChild(){CPerson* pPerson = NULL;pPerson = new CChild;pPerson->Eat();}
5.实现效果
对话框界面
点击基类指针按钮效果:person
点击派生类指针按钮效果:old
点击派生类指针按钮效果:youth
点击派生类指针按钮效果:child
好了,效果就演示到这儿了。
源码下载
1 0
- VS之多态虚函数的实现
- C++学习之多态篇(虚函数和虚析构函数的实现原理--虚函数表)
- 虚函数之多态讲解
- 学习笔记之多态与虚函数
- C++之多态和虚函数
- C++之多态和虚函数
- C++之多态与虚函数
- C++笔记之多态中的虚函数
- 总结之多态和虚函数
- C++之多态和虚函数
- C++之多态和虚函数
- C#学习二之多态的实现
- C++学习之多态的实现
- c++远征之多态篇——虚函数及其实现原理
- C++学习之多态篇(纯虚函数和虚函数的区别)
- c++学习之多态(虚函数和纯虚函数)
- 学习心得之多任务的实现
- Java之多线程的实现:
- Codec Engine Algorithm Creator User’s Guide
- Java 理论与实践: 动态编译与性能测量
- 从头认识C—指针的一些知识点
- 第十六周 oj平台 指针引出奇数因子
- Think In Java Chapter 18 IO系统 练习17 计算文件中字符出现次数
- VS之多态虚函数的实现
- ALM通过测试集获取执行流条件
- 围观围观
- 第8章 雷锋依然在人间-工厂方法模式 大话设计模式
- 【剑指Offer面试编程题】题目1504:把数组排成最小的数--九度OJ
- JSP&&SERVLET学习笔记(六):getReader(), getInputStream()读取Body内容
- @id和@+id有和不同
- 原理与示例:php+mysql+jquery 生成静态网页(含后台编辑功能)
- 南阳理工58最少步数