c++继承时的构造函数
2013-05-30 21:59
169 查看
1。单继承时构造函数
派生类名::派生类名(基类所需的形参,本类成员所需的形参):基类名(参数)
{本类成员初始化赋值语句;};
2。多继承时构造函数
派生类名::派生类名(基类1形参,基类2形参,。。。。基类n形参,本类形参):基类名1(参数),基类名2(参数),。。。。基类名n(参数)
{本类成员初始化赋值语句;};
3。多继承且有内嵌对象时构造函数
派生类名::派生类名(基类1形参,基类2形参,。。。。基类n形参,本类形参):基类名1(参数),基类名2(参数),。。。。基类名n(参数),对象数据成员的初始化
{本类成员初始化赋值语句;};
派生类名::派生类名(基类所需的形参,本类成员所需的形参):基类名(参数)
{本类成员初始化赋值语句;};
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; }
相关文章推荐
- 编程算法 - 不能被继承的类(私有构造函数) 代码(C++)
- C++在继承的构造函数和析构函数
- 从零开始学C++之继承(二):继承与构造函数、派生类到基类的转换
- C++ 构造函数和析构函数是否可以继承?
- 关于C++子类在继承父类的构造函数时的一些情况
- 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成员)
- C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容
- c++继承中的构造函数与拷贝控制
- C++ 虚继承对基类构造函数调用顺序的影响
- C++中了类继承和调用父类的构造函数方法
- C++多继承构造函数执行顺序
- c++ 继承/派生、访问属性、构造函数
- C++继承中关于子类构造函数的写法
- C++ 构造函数和析构函数是否可以继承?
- 在C++中子类继承和调用父类的构造函数方法
- C++继承中构造函数、析构函数调用顺序及虚函数的动态绑定
- c++继承知识点积累:继承和构造函数
- 【C++】继承时构造函数和析构函数
- C++中继承类构造函数和作用域
- C++继承与构造函数、复制控制