| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 567 人关注过本帖, 1 人收藏
标题:继承的问题,怎么会变成递归了?
只看楼主 加入收藏
rainvoice
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-6-10
结帖率:0
收藏(1)
已结贴  问题点数:5 回复次数:2 
继承的问题,怎么会变成递归了?
#include<iostream.h>
class A1{            // 定义基类A1
    int a1;
public:
    A1(int i){a1=i;cout<<"constructor A1."<<a1<<endl;}
    void print( ){cout<<a1<<endl;}
};
class A2{            // 定义基类A2
    int a2;
public:
    A2(int i){a2=i;cout<<"constructor A2."<<a2<<endl;}
    void print(){cout<<a2<<endl;}
};
class A3{                   // 定义A3
    int a3;
public:
    A3(int i){a3=i;cout<<"constructor A3."<<a3<<endl;}
    int geta3( ){return a3;}
};


class B:public A2 , public A1{// 定义派生类 B,基类为A1和A2
    int b;
    A3 obj_a3;  //对象成员
public:
      B(int i,int j,int k,int l):A1(i),A2(j), obj_a3 (k)//派生类构造函数
      {    b=l;
    cout<<"constructor B."<<b<<endl;
      }
      void print()
      {    static int c=1;
       c++;
       cout<<c<<endl;
       print();
    cout<<obj_a3. geta3()<<","<<b<<endl;
      }
};
void main( )
{    B bb(1,2,3,4);
    bb.print();//问题:为什么这里居然可以调用这个函数,调用次序有是怎么样的呢?请高手们指点指点迷津呢!!
}

搜索更多相关主题的帖子: 递归 继承 
2010-06-10 20:26
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:2 
B类中你有  
    void print()
      {    static int c=1;
       c++;
       cout<<c<<endl;
       print();
    cout<<obj_a3. geta3()<<","<<b<<endl;
      }
为什么不能调用?
看代码你是在递归哈~~~
2010-06-10 20:39
leoshi
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2010-6-16
收藏
得分:2 
在派生类中的print()函数中又嵌套了调用这个函数,楼主的意思是不是说,派生类的print()函数复盖了基类的print()函数?
2010-06-16 16:54
快速回复:继承的问题,怎么会变成递归了?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015851 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved