| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 876 人关注过本帖
标题:向朋友们请教这个关于这个程序的问题.
只看楼主 加入收藏
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
收藏
 问题点数:0 回复次数:17 
向朋友们请教这个关于这个程序的问题.

#include<iostream.h>
class stack
{
int *top;
int *bottom;
int sz;
public:
stack(int sz1);


~stack()
{
delete[] bottom;
}

void push(int i);
int pop();
};

stack::stack(int sz1)
{
sz=sz1;
top=bottom=new int[sz];
}

void stack::push(int i)
{
if (top-bottom<sz)
*top++=i;
}

int stack::pop()
{
if (--top>=bottom)
return *top;
else
return 0;
}


void main()
{

stack s1(50);
stack s2=s1;
}

搜索更多相关主题的帖子: 朋友 
2006-06-02 11:02
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

Where are your questions?


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-06-02 11:04
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
收藏
得分:0 

编译连接都能通过

问题是执行时.出现异常错误

可能是构造函数和析构函数有问题吧?


有实力才会有魅力 实力来自坚持不懈的努力
2006-06-02 11:07
ooooo
Rank: 1
等 级:新手上路
威 望:1
帖 子:135
专家分:0
注 册:2005-6-24
收藏
得分:0 
class stack
{
....
stack(int sz1);
//添加以下5行
stack(const stack& another)
{
this->sz=another.sz;
this->top=this->bottom=new int[another.sz];
}
...
};
//这种情况应该自定义拷贝构造函数进行深拷贝

[此贴子已经被作者于2006-6-2 12:08:56编辑过]


2006-06-02 11:37
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

先前的写错了,大家记得两个指针地址想减的结果是1;int *p,*q;
p=q=new in;
p++;cout<<p-q<<endl;输出1

[此贴子已经被作者于2006-6-3 23:18:25编辑过]


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-06-02 11:41
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

我不知道了,应该就这么多吧

[此贴子已经被作者于2006-6-2 11:47:56编辑过]


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-06-02 11:44
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

再写个=运算符重载


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-06-02 12:07
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
int指针的值是int变量的地址,不是每次加4吗?

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-06-02 12:10
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
我搞错了,哎,笨到家了,最近什么都弄错

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-06-02 12:13
ooooo
Rank: 1
等 级:新手上路
威 望:1
帖 子:135
专家分:0
注 册:2005-6-24
收藏
得分:0 
stack a;
stack b=a; //会调用拷贝构造函数 不会调用重载的=

stack a;
stack b;
b=a; //不会调用拷贝构造函数 会调用重载的=


类结构中除了构造函数,析构函数
= &
也被默认重载(不能实现深拷贝的功能)

2006-06-02 12:19
快速回复:向朋友们请教这个关于这个程序的问题.
数据加载中...
 
   



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

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