C++继承练习
来源:互联网 发布:易观数据来源 编辑:程序博客网 时间:2024/06/15 01:57
C++继承练习
书上对于继承的说明我觉得还不足够细致,自己写段代码对比一下,希望能对同样学习的同学提供帮助。
引入windows.h主要是为了输出时间,方便对继承关系中函数的执行有个相对直观的了解。
#include "stdafx.h"#include <iostream>#include "windows.h"using namespace std;class People{protected: char name[20],xb[10],id[21]; int num,all,week; SYSTEMTIME sys; public:People() { //name="我是溢出name"; char p[20]="默认name"; strcpy_s(name,p); num=99; char p1[10]="默认xb"; strcpy_s(xb,p1); char p2[21]="默认id"; strcpy_s(id,p2); all=100; week=101; GetLocalTime( &sys ); cout<<"我是People__默认构造函数"<<sys.wMinute<<":"<<sys.wSecond<<":"<<sys.wMilliseconds<<endl; }public:People(char na[20],int nu,char x[10],char idc[21],int al,int wk) { strcpy_s(name,na); num=nu; strcpy_s(xb,x); strcpy_s(id,idc); all=al; week=wk; //SYSTEMTIME sys; GetLocalTime( &sys ); cout<<"我是People__含参"<<sys.wMinute<<":"<<sys.wSecond<<":"<<sys.wMilliseconds<<endl; } virtual void show() { cout<<name<<'\t'<<num<<'\t'<<xb<<endl<<id<<'\t'<<all<<'\t'<<week<<endl; }};//学生class Student: virtual public People{public: Student(char na[20],int nu,char x[10],char idc[21],int al,int wk) { //SYSTEMTIME sys; GetLocalTime( &sys ); cout<<"我是Student__"<<sys.wMinute<<":"<<sys.wSecond<<":"<<sys.wMilliseconds<<endl; };};//教师class Teacher:virtual public People{protected: int teach;public: Teacher(char na[20],int nu,char x[10],char idc[21],int al,int wk,int tean); void show() { cout<<name<<'\t'<<num<<'\t'<<xb<<endl<<id<<'\t'<<all<<'\t'<<week<<'\t'<<teach<<endl; }};Teacher::Teacher(char na[20],int nu,char x[10],char idc[21],int al,int wk,int tean):People(na,nu,x,idc,al,wk){ teach=tean; //SYSTEMTIME sys; GetLocalTime( &sys ); cout<<"我是Teacher__"<<sys.wMinute<<":"<<sys.wSecond<<":"<<sys.wMilliseconds<<endl;};class Graduate:virtual public Student{protected: char project[30];public: Graduate(char na[20],int nu,char x[10],char idc[21],int al,int wk,char pro[30]):Student(na,nu,x,idc,al,wk) { strcpy_s(project,pro); } void show() { cout<<name<<'\t'<<num<<'\t'<<xb<<endl<<id<<'\t'<<all<<'\t'<<week<<'\t'<<project<<endl; }};int main() { People pe("People",5,"PeopleXB","Peopleidc",5,6); pe.show(); //教师 Teacher tr("Teacher",5,"TeacherXB","Teacherid",5,6,7); tr.show(); //毕业生 Graduate gd("Graduate",5,"GraduateXB","Graduateid",5,6,"pro"); gd.show(); getchar(); return 0;}
其中的继承关系是:
People–》Teacher
People–》Student–》Graduate
1 1
- C/C++_log2000_继承的练习1
- 继承练习
- 类多继承及包含练习(c++primer plus)
- Objective-C学习 继承之僵尸练习
- 继承、接口的练习
- 继承的练习
- C++小练习--继承
- C++继承练习
- C++练习继承类
- 继承+多态练习
- Java继承小练习
- java的继承练习
- 【java】简单继承练习
- Java继承练习
- 类的继承练习
- Inherited继承的练习
- java继承基本概念练习
- 继承——练习
- android消息机制自我理解
- iOS应用内付费(IAP)开发步骤列表
- Android学习(第三天、第四天)
- python之metaclass
- errno和strerror
- C++继承练习
- E_Deploy部署流程简述
- sae 中文域名
- 决定IT项目管理成败的16个字
- MyEclipse使用经验总结
- Insert Interval
- tomcat 源码阅读步骤一
- HIbernate使用select new 优化测试
- 第39课第四题