c++繼承時的構造函數

1。單繼承時構造函數

派生類名::派生類名(基類所需的形參,本類成員所需的形參):基類名(參數)

{本類成員初始化賦值語句;};

2。多繼承時構造函數

派生類名::派生類名(基類1形參,基類2形參,。。。。基類n形參,本類形參):基類名1(參數),基類名2(參數),。。。。基類名n(參數)

{本類成員初始化賦值語句;};

3。多繼承且有內嵌對象時構造函數

派生類名::派生類名(基類1形參,基類2形參,。。。。基類n形參,本類形參):基類名1(參數),基類名2(參數),。。。。基類名n(參數),對象數據成員的初始化

{本類成員初始化賦值語句;};

#include<iostream>//單繼承時構造函數
#include<string>
using namespace std;
class student
{
protected:
	string name;
	int age;
	char sex;
public:
	student(string strname,int iage,char csex)
	{
		name=strname;age=iage;sex=csex;
	}
};
class enhancedstudent:public student
{
private:
	string address;
	string tel;
public:
	enhancedstudent(string strname,int age,char csex,string straddress,string strtel):student(strname,age,csex)
	{
		address=straddress;tel=strtel;
	}
	void showstudent()
	{
		cout<<name<<endl;
		cout<<age<<endl;
		cout<<sex<<endl;
		cout<<address<<endl;
		cout<<tel<<endl;
	}
};
int main()
{
	enhancedstudent s1("zhang san",29,'f',"beijing","13718599102");
	enhancedstudent s2("li si",37,'m',"tianjing","13651095416");
	s1.showstudent();
	s2.showstudent();
	return 0;
}

#include<iostream>//多繼承時構造函數
#include<string>
using namespace std;
class T1
{
private:
	int x;
	int y;
public:
	T1(int ix,int iy)
	{
		x=ix;y=iy;
	}
	int getx()
	{
		return x;
	}
	int gety()
	{
		return y;
	}
};
class T2
{
	private:
	int w;
	int z;
public:
	T2(int iw,int iz)
	{
		w=iw;z=iz;
	}
	int getw()
	{
		return w;
	}
	int getz()
	{
		return z;
	}
	
};
class T_ALL:public T1,public T2
{
private:
	int n;
public:
	T_ALL(int tx,int ty,int tw,int tz,int tn):T1(tx,ty),T2(tw,tz)
	{
		n=tn;
	}
	int getn()
	{
		return n;
	}
	void showall()
	{
		cout<<getx()<<endl;
		cout<<gety()<<endl;
		cout<<getw()<<endl;
		cout<<getz()<<endl;
		cout<<getn()<<endl;
	}
	
};
int main()
{
	T_ALL all1(1,2,3,4,5);
	cout<<all1.getx()<<endl;
	cout<<all1.gety()<<endl;
	cout<<all1.getw()<<endl;
	cout<<all1.getz()<<endl;
	cout<<all1.getn()<<endl;
	cout<<"==================="<<endl;
	all1.showall();

	return 0;

}

#include<iostream>
using namespace std;
class A
{
public:
	int x,q;
		A(int ix,int iq)
	{
		x=ix;
		q=iq;
	}
	
};
class B
{
public:
	int y;
	B(int iy)
	{
		y=iy;
	}
};
class C:public A,public B
{
public:
	A a;
	B b;
	int m;
public:
	C(int ix,int iq,int iy,int w,int oo,int z,int im):A(ix,iq),B(iy),a(w,oo),b(z)
	{
		m=im;
	}


};
int main()
{
	C c(1,2,3,4,5,6,7);
	cout<<c.x<<endl;
	cout<<c.q<<endl;
	cout<<c.m;
	//cout<<c.A;
	
	return 0;
}




發佈了17 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章