您的位置:首页 > 编程语言 > C语言/C++

c++继承时的构造函数

2013-05-30 21:59 169 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: