| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 705 人关注过本帖
标题:[求助]派生类问题
取消只看楼主 加入收藏
xbw0114
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2007-8-8
收藏
 问题点数:0 回复次数:6 
[求助]派生类问题
#include <iostream.h>
class P
{
public :
P(int p1,int p2)
{
pri1=p1;
pri2=p2;
}
int inc1 ()
{
return ++pri1;
}
int inc2()
{
return ++pri2;
}
void disp ()
{
cout<<"pri1="<<pri1<<"pri2="<<pri2<<endl;
}
private :
int pri1,pri2;
};
class D1:private P
{
public :
D1(int p1,int p2,int p3):P(p1,p2)
{
pri3=p4;
}
int inc1()
{
return P::inc1();
}
int inc3()
{
return ++pri3;
}
void disp()
{
P::disp();
cout<<"pri3="<<pri3<<endl;
}
private:
int pri3;
};
class D2:public P
{
public :
D2(int p1,int p2,int p4):P(p1,p2)
}
pri4=p4;
}
int inc1 ()
{
P::inc1();
P::inc1();
return P::inc1();
int inc4()
{
return ++pri4;
}
void disp ()
{
P::disp();
cout<<"pri4="<<pri4<<endl;
}
private :
int pri4;
};
class D12 :private D1,public D2
{
public :
D12 (int p11,int p12,int p13,int p21,int p22,int p23,int p):D(p11, p12 ,p13),D(p21,p22,p23)
{
pri12=p;
}
int inc1()
{
D2::inc1();
return D2::inc1();
return D2::inc1();
}
int inc5()
{
return ++pri12;
}
void disp ()
{
cout<<"D2::disp()"<<endl;
D2::disp();
cout<<"pri12="<<pri12<<endl;
}
private:
int pri12;
};
void main ()
{
D12 d(1,2,3,4,5,6,7);
d.disp();
d.inc1();
d.inc4();
d.inc5();
d.D12::inc1();
d.disp();
}
帮忙找一下错误,再帮忙解释一下程序,我不太明白
搜索更多相关主题的帖子: private include public return 
2007-09-18 07:08
xbw0114
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2007-8-8
收藏
得分:0 
??

勤奋造就未来
2007-09-18 09:58
xbw0114
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2007-8-8
收藏
得分:0 

急急啊,有人知道吗?


勤奋造就未来
2007-09-18 16:19
xbw0114
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2007-8-8
收藏
得分:0 

多谢,我修改好了,有谁能帮忙具体解释下该程序吗?
正确代码如下:
#include <iostream.h>
class P
{
public :
P(int p1,int p2)
{
pri1=p1;
pri2=p2;
}
int inc1 ()
{
return ++pri1;
}
int inc2()
{
return ++pri2;
}
void disp ()
{
cout<<"pri1="<<pri1<<"pri2="<<pri2<<endl;
}
private :
int pri1,pri2;
};
class D1:private P
{
public :
D1(int p1,int p2,int p3):P(p1,p2)
{
pri3=p3;
}
int inc1()
{
return P::inc1();
}
int inc3()
{
return ++pri3;
}
void disp()
{
P::disp();
cout<<"pri3="<<pri3<<endl;
}
private:
int pri3;
};
class D2:public P
{
public :
D2(int p1,int p2,int p4):P(p1,p2)
{
pri4=p4;
}
int inc1 ()
{
P::inc1();
P::inc2();
return P::inc1();
}
int inc4()
{
return ++pri4;
}
void disp ()
{
P::disp();
cout<<"pri4="<<pri4<<endl;
}
private :
int pri4;
};
class D12 :private D1,public D2
{
public :
D12 (int p11,int p12,int p13,int p21,int p22,int p23,int p):D1(p11, p12 ,p13),D2(p21,p22,p23)
{
pri12=p;
}
int inc1()
{
D2::inc1();
return D2::inc1();
return D2::inc1();
}
int inc5()
{
return ++pri12;
}
void disp ()
{
cout<<"D2::disp()"<<endl;
D2::disp();
cout<<"pri12="<<pri12<<endl;
}
private:
int pri12;
};
void main ()
{
D12 d(1,2,3,4,5,6,7);
d.disp();
d.inc1();
d.inc4();
d.inc5();
d.D12::inc1();
d.disp();
}


勤奋造就未来
2007-09-18 17:46
xbw0114
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2007-8-8
收藏
得分:0 
感动ing~~~真是太感谢了~~~
但是好像输出的结果是
D2::disp()
pri1=4,pri2=5
pri4=6
pri12=7
D2::disp()
pri1=12,pri3=9
pri4=7
pri12=8
是哪里出现了错误呢?

[此贴子已经被作者于2007-9-18 21:13:59编辑过]


勤奋造就未来
2007-09-18 20:46
xbw0114
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2007-8-8
收藏
得分:0 
有谁知道正解吗~~~

勤奋造就未来
2007-09-19 07:51
xbw0114
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2007-8-8
收藏
得分:0 

勤奋造就未来
2007-09-19 15:37
快速回复:[求助]派生类问题
数据加载中...
 
   



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

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