标题:[求助]清空类数组
只看楼主
wangpai7776
Rank: 1
来 自:北京
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-1-6
 问题点数:0 回复次数:8 
[求助]清空类数组
先前,定义了一个类数组animal[20],开始的时候,是空的,该类中,包含很多变量。
后来根据一个运算法则,往类数组中的变量,赋值。
在跳到下一次循环之前,必须把类数组清空,请问,该怎么做啊???
搜索更多相关主题的帖子: 变量 法则 定义 animal 
2006-04-18 14:32
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
得分:0 
给类定义一个自动清空自己的函数,类数组需要清空的时候,挨个调用类的清空函数。

成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-04-18 17:33
wangpai7776
Rank: 1
来 自:北京
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-1-6
得分:0 
我也这样想,就是想问问,这个清空函数该怎么写?
我一个一个的删除类数组中的每个元素,可到了数组中只有一个元素时,就不能再删除了。

认真你就输了
2006-04-19 09:37
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
得分:0 
啊?楼主的意思不是把数组中没个类的变量清空啊?
要是删除类中的每个元素,那我想问一下,这个数组里存放的是对象还是指针呢?

成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-04-19 09:42
wangpai7776
Rank: 1
来 自:北京
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-1-6
得分:0 

我存放的是对象。不知道,这样清空,是不是很困难。
如果是指针,倒是简单点的。


认真你就输了
2006-04-19 11:13
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
得分:0 
对象就用delete删除。

=×&D o I p R e E n C g T l X&×=
2006-04-19 11:26
wangpai7776
Rank: 1
来 自:北京
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-1-6
得分:0 
以下是引用Bjarne在2006-4-19 11:26:00的发言:
对象就用delete删除。

我的问题就是,用delete删除时,遇到类数组中,还剩一个元素的时候,会出现问题。
我简单写一下吧:
比如有个类:
class animal
{
age[3];//年龄阶段
food[10];//常吃的10种食物
}
然后
animal s[100];
先给这个类数组赋上20个值(里面的age[]和food[]都赋上),
然后,由于这些数据经过计算后,都没有用了,要将这个类数组全部清空,重新放入另外的信息。
请问,该怎么做???


认真你就输了
2006-04-19 11:45
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
得分:0 

#include<iostream.h>
class animal
{
int age[3];
char *food[10];
public:
animal() {};
animal(int Age[],char *Food[])
{
for(int i=0;i<3;i++)
age[i]=Age[i];
for(int j=0;j<10;j++)
food[i]=Food[i];
}
Display()
{
cout<<age[0]<<"\t"<<age[1]<<"\t"<<age[2]<<endl;
}
};

void main()
{
int Age[]={1,5,10};
char *Food[]={"qwe","rty","uio","asd","fgh","jkl","zxc","vbn","zaq","xsw"};
animal s(Age,Food);
animal f;
animal d[100]={s};
d[0].Display();
d[1].Display();
cout<<sizeof(d)<<endl;
//重装入其它的数据.并不一定要清空才能重装入其它数据。
//一定要清空的话,像下列这样用默认构造对象就可清空。

for(int i=0;i<100;i++)
d[i]=f;
cout<<sizeof(d)<<endl;
d[0].Display();
d[1].Display();
}


=×&D o I p R e E n C g T l X&×=
2006-04-19 12:42
wangpai7776
Rank: 1
来 自:北京
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-1-6
得分:0 

好的,谢谢。
现在就用默认构造对象,清空类数组了!


认真你就输了
2006-04-19 14:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-58319-1-1.html




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

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