| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 389 人关注过本帖
标题:關于繼承的問題
只看楼主 加入收藏
iwar
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-4-16
收藏
 问题点数:0 回复次数:3 
關于繼承的問題

各位:以下代碼何錯之有啊??
爲什麽老提示錯誤???


#include<iostream>
class base
{
int m1() { return 30; }
public:
virtual int m2() { return 40; }
virtual ~base() { }
};

class derived : public base
{
public:
int m2() { return 50; }
};

void main()
{
base *p_b = new base();
derived *p_d = new derived();

cout << "b->m3(): " << b->m3() << endl;
cout << "d->m3(): " << d->m3() << endl;
delete b;
b =d;
cout << "b_d->m3(): " << b->m3() <<endl;
delete d;
}

THX!!!!

2007-05-22 17:37
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
还没看你怎么写的,我想问问:

b,d,m3()这些似乎都没声明!

Fight  to win  or  die...
2007-05-22 17:42
kisscjy
Rank: 1
等 级:新手上路
帖 子:217
专家分:0
注 册:2007-4-9
收藏
得分:0 

错误真不是一般的多
以下打红字的就是你的错误了~~~

#include<iostream>
using namespace std; //少了名字空间
class base
{
int m1() { return 30; }
public:
virtual int m3() { return 40; } //你定义m2,却在主函数中使用了m3
virtual ~base() { }
};

class derived : public base
{
public:
int m3() { return 50; } //同上
};

void main()
{
base *p_b = new base(); //定义指针名称为 p_b,但在主函数中使用了 b;
derived *p_d = new derived(); //同上

cout << "b->m3(): " << p_b->m3() << endl;
cout << "d->m3(): " << p_d->m3() << endl;
delete p_b;
p_b =p_d;
cout << "b_d->m3(): " << p_b->m3() <<endl;
delete p_d;
}


每当我一晚写下70,80个程序时,你还真以为,这都是我一个人干的.....不过说真的,其实都是抄书的~~ ^@^
2007-05-23 00:08
iwar
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-4-16
收藏
得分:0 
原來....
3Q拉!!!!!!!
2007-05-23 12:41
快速回复:關于繼承的問題
数据加载中...
 
   



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

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