Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7688496
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

分类: C/C++

2011-08-06 14:05:44

/*

 * 多继承

 * Lzy   2011-七夕

 */

 

#include

using namespace std;

 

class A

{

private:

   int a;

public:

   A():a(1){}

   void displayA(){cout<<"A :"<

};

 

class B

{

private:

   int b;

public:

   B():b(2){}

   void displayB(){cout<<"B :"<

};

 

class C:public A,public B

{

private:

   int c;

public:

   C():c(3){}

   void displayC(){cout<<"C :"<

};

 

int main(void)

{

   C c;

   c.displayA();

   c.displayB();

   c.displayC();

 

   return 0;

}

 

 

/*

 * 多继承的构造函数和析构函数

 * 对于所有需要给予参数进行初始化的基类,都要显示给出基类名和参数表

 * Lzy   2011-七夕

 */

 

#include

using namespace std;

 

class Base1

{

private:

   int b1;

public:

   Base1(){cout<<"Base1 缺省构造函数:"<

   Base1(int x):b1(x){cout<<"Base1 构造函数:"<

   ~Base1(){cout<<"Base1 析构函数:"<

};

 

class Base2

{

private:

   int b2;

public:

   Base2(){cout<<"Base2 缺省构造函数:"<

   Base2(int x):b2(x){cout<<"Base2 构造函数:"<

   ~Base2(){cout<<"Base2 析构函数:"<

};

 

class Derive:public Base1, public Base2

{

private:

   Base1 b1;

   Base2 b2;

public:

   Derive(){cout<<"Derive 缺省构造函数:"<

   Derive(int x, int y,int i, int j):b1(x),b2(y),Base1(i),Base2(j)

   {cout<<"Derive 构造函数:"<

   ~Derive(){cout<<"Derive 析构函数:"<

};

 

int main(void)

{

   Derive obj(1,2,3,4);

   return 0;

}

 

 

/*

 * 多继承二义性问题

 * 作用域运算符

 * Lzy   2011-七夕

 */

 

#include

using namespace std;

 

class Base1

{

private:

   int b1;

public:

   Base1():b1(3){}

   void display(){cout<<"Base1 :"<

};

 

class Base2

{

private:

   int b2;

public:

   Base2():b2(5){}

   void display(){cout<<"Base2 :"<

};

 

class Derive:public Base1, public Base2

{

private:

   int d;

public:

   Derive():d(0){}

   void print(){cout<<"Derive :"<

   void display(){Base1::display();Base2::display();}

};

 

int main(void)

{

   Derive d;

   d.Base1::display();

   d.Base2::display();

   d.print();

   d.display();

 

   return 0;

}

 


阅读(1901) | 评论(3) | 转发(2) |
给主人留下些什么吧!~~

jiayanfu2011-08-12 08:54:13

mhsy2003: 多继承的例子,如果能结合一些 接口设计的例子更好了,一般我使用c++多继承的时候,把其中一个做父类,其他的是接口继承。.....
c++中好像没有接口吧?不知道您说的接口继承是什么意思。。。请教了。。。

jiayanfu2011-08-12 08:49:27

多继承,迄今还没用过。。。

mhsy20032011-08-08 00:34:19

多继承的例子,如果能结合一些 接口设计的例子更好了,一般我使用c++多继承的时候,把其中一个做父类,其他的是接口继承。