关于一个整形数组的类
时间:2011-11-29
来源:互联网
/****intArray.h*******************************************/
class intArray
{
private:
int *element; //指向动态数组的指针
int arraysize; //数组的当前长度
public:
intArray(int size); //构造函数
intArray(const intArray &x);//拷贝构造函数
~intArray();//析构函数
bool Set(int i,int elem);//设置第i个数组元素的值,设置成功返回true,失败返回false
bool Get(int i,int &elem);//获取第i个数组元素的值,设置成功返回true,失败返回false
int Length() const; //获取数组长度
void ReSize(int size);//重置数组
void Print();//输出数组
};
/*******************************************************************************************/
/********************intArray.cpp**********************************************************/
#include<iostream>
using namespace std;
#include<string.h>
#include"intArray.h"
intArray::intArray(int size)
{
arraysize=size;
element=new int[arraysize];
if(element!=NULL)
for(int i=0;i<arraysize;i++)
{ element[i]=0;}
}
intArray::intArray(const intArray &x)
{
arraysize=x.arraysize;
element=new int[arraysize];
if(element!=NULL)
for(int i=0;i<arraysize;i++)
{ element[i]=x.element[i];}
}
bool intArray::Set(int i,int elem)
{
element[i]=elem;
if(element[i]!=NULL)
return true;
else
return false;
}
bool intArray::Get(int i,int &elem) //获取第i个元素
{
elem=element[i];
if(elem!=NULL)
return true;
else
return false;
}
int intArray::Length() const
{
return arraysize;
}
void intArray::ReSize(int size) //怎么重置数组???
{
}
void intArray::Print()
{for(int i=0;i<arraysize;i++)
cout<<element[i]<<'\t';
}
intArray::~intArray()
{ delete []element;
}
void main()
{intArray a(10);
intArray b(a);
a.Set(5,10);
int k;
cout<<a.Get(5,k)<<'\t'<<b.Get(2,k)<<'\n'<<endl;//这样做到底对不对???
cout<<a.Length()<<'\n'<<endl;
a.Print();
cout<<'\n'<<b.Length()<<'\n'<<endl;
b.Print();
}
输出结果
1 0 //怎么会有1呢?
10
0 0 0 0 0 10 0 0 0 0
10
0 0 0 0 0 0 0 0 0 0
能不能解释?
class intArray
{
private:
int *element; //指向动态数组的指针
int arraysize; //数组的当前长度
public:
intArray(int size); //构造函数
intArray(const intArray &x);//拷贝构造函数
~intArray();//析构函数
bool Set(int i,int elem);//设置第i个数组元素的值,设置成功返回true,失败返回false
bool Get(int i,int &elem);//获取第i个数组元素的值,设置成功返回true,失败返回false
int Length() const; //获取数组长度
void ReSize(int size);//重置数组
void Print();//输出数组
};
/*******************************************************************************************/
/********************intArray.cpp**********************************************************/
#include<iostream>
using namespace std;
#include<string.h>
#include"intArray.h"
intArray::intArray(int size)
{
arraysize=size;
element=new int[arraysize];
if(element!=NULL)
for(int i=0;i<arraysize;i++)
{ element[i]=0;}
}
intArray::intArray(const intArray &x)
{
arraysize=x.arraysize;
element=new int[arraysize];
if(element!=NULL)
for(int i=0;i<arraysize;i++)
{ element[i]=x.element[i];}
}
bool intArray::Set(int i,int elem)
{
element[i]=elem;
if(element[i]!=NULL)
return true;
else
return false;
}
bool intArray::Get(int i,int &elem) //获取第i个元素
{
elem=element[i];
if(elem!=NULL)
return true;
else
return false;
}
int intArray::Length() const
{
return arraysize;
}
void intArray::ReSize(int size) //怎么重置数组???
{
}
void intArray::Print()
{for(int i=0;i<arraysize;i++)
cout<<element[i]<<'\t';
}
intArray::~intArray()
{ delete []element;
}
void main()
{intArray a(10);
intArray b(a);
a.Set(5,10);
int k;
cout<<a.Get(5,k)<<'\t'<<b.Get(2,k)<<'\n'<<endl;//这样做到底对不对???
cout<<a.Length()<<'\n'<<endl;
a.Print();
cout<<'\n'<<b.Length()<<'\n'<<endl;
b.Print();
}
输出结果
1 0 //怎么会有1呢?
10
0 0 0 0 0 10 0 0 0 0
10
0 0 0 0 0 0 0 0 0 0
能不能解释?
作者: xviubu 发布时间: 2011-11-29
a.Get(5,k) 返回的
作者: merlin_q 发布时间: 2011-11-29
a.Get(5,k) 使k=10, 返回true
true被被定义了1, b.Get(2,k)使得k=0,NULL 被定义了0
if(elem!=NULL)返回的是 false
结果返回0,
cout<<a.Get(5,k)<<'\t'<<b.Get(2,k)<<'\n'<<endl;
这一句就返回1, 0
true被被定义了1, b.Get(2,k)使得k=0,NULL 被定义了0
if(elem!=NULL)返回的是 false
结果返回0,
cout<<a.Get(5,k)<<'\t'<<b.Get(2,k)<<'\n'<<endl;
这一句就返回1, 0
引用 1 楼 merlin_q 的回复:
a.Get(5,k) 返回的
a.Get(5,k) 返回的
作者: merlin_q 发布时间: 2011-11-29
引用 2 楼 merlin_q 的回复:
a.Get(5,k) 使k=10, 返回true
true被被定义了1, b.Get(2,k)使得k=0,NULL 被定义了0
if(elem!=NULL)返回的是 false
结果返回0,
cout<<a.Get(5,k)<<'\t'<<b.Get(2,k)<<'\n'<<endl;
这一句就返回1, 0
引用 1 楼 merlin_q 的回复:
a.Get(5,k……
a.Get(5,k) 使k=10, 返回true
true被被定义了1, b.Get(2,k)使得k=0,NULL 被定义了0
if(elem!=NULL)返回的是 false
结果返回0,
cout<<a.Get(5,k)<<'\t'<<b.Get(2,k)<<'\n'<<endl;
这一句就返回1, 0
引用 1 楼 merlin_q 的回复:
a.Get(5,k……
正解!!
作者: JieTouLangRen 发布时间: 2011-11-30
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28