C++中类继承中的初始化举例

#include <iostream>
#include <iomanip>
#include <ctime>
#include <string.h>
#include <typeinfo>
#include <windows.h>
#include <time.h>
#include <unistd.h>
#include <math.h>
#include <vector> 
#include <algorithm>
#include "mystring.h"
using namespace std;
#define PI 3.14

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
class Student 
{ 
	public: 
		Student(string sn,int n,char s);
		~Student();
		void dis();
	private: 
		string name; 
		int num; 
		char sex;
};
Student::Student(string sn, int n, char s) :name(sn),num(n),sex(s) 
{
	
}
Student::~Student() 
{
	
}
void Student:: dis() 
{ 
	cout<<name<<endl; 
	cout<<num<<endl; 
	cout<<sex<<endl; 
}

class Graduate:public Student 
{
	public: 
		Graduate(string sn,int in,char cs,float fs); 
		~Graduate();
		void dump() 
		{ 
			dis(); 
			cout<<salary<<endl; 
		}
	private: 
		float salary; 
};

Graduate::Graduate(string sn, int in, char cs, float fs) :Student(sn,in,cs),salary(fs) 
{
	
}

Graduate::~Graduate() 
{
	
}

class Birthday 
{ 
	public: 
		Birthday(int y,int m,int d); 
		~Birthday();
		void print();
	private: 
		int year; 
		int month; 
		int day; 
};

Birthday::Birthday(int y, int m, int d) :year(y),month(m),day(d) 
{
	
}

Birthday::~Birthday() 
{ 

}
void Birthday::print() 
{
	cout<<year<<month<<day<<endl;
}

class Doctor:public Graduate 
{ 
	public: 
		Doctor(string sn,int in,char cs,float fs,string st,int iy,int im,int id); 
		~Doctor();
		void disdump();
	private: 
		string title; //调用的默认构造器,初始化为””
		Birthday birth; //类中声明的类对象
};

Doctor::Doctor(string sn, int in, char cs, float fs, string st, int iy, int im, int id) :Graduate(sn,in,cs,fs),birth(iy,im,id),title(st) 
{ 

}
Doctor::~Doctor() 
{
	
}
void Doctor::disdump() 
{ 
	dump(); 
	cout<<title<<endl; 
	birth.print();
}

int main(int argc, char** argv) 
{
	Student s("zhaosi",2001,'m'); 
	s.dis(); 
	
	cout<<"----------------"<<endl; 
	Graduate g("liuneng",2001,'x',2000); 
	g.dump();
	
	cout<<"----------------"<<endl; 
	Doctor d("qiuxiang",2001,'y',3000,"doctor",2001,8,16); 
	d.disdump(); 
	
	cout << "Hello world" << endl;
	return 0;
}

运行结果:
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百万攻城狮

你的鼓励是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值