富士康品质工程师待遇:C++做一个简单类

来源:百度文库 编辑:高校问答 时间:2024/04/30 09:23:29
做一个能处理整形数组的类
1.MyInt a[3]={10,20,30};
2.功能:a.getmax()就能得到最大值
第一布该怎么做?
是否要重载[]号
该怎么做?谢谢
楼下的兄弟,我想知道第一步怎么做
不是第二部,谢谢!

这样做:
class CArrayInt//类
{
public:
CArrayInt(int size);
int operator[](int index);
int GetMax();
~CArrayInt();
private:
int m_iSize;//数组大小
int* m_pData;//数组数据
};

CArrayInt::CArrayInt(int size)
{
m_iSize = size;

//
m_pData = new int[m_iSize];
}

CArrayInt::~CArrayInt()
{
delete[] m_pData;
}

int CArrayInt::operator [](int index)
{
assert(index >= 0 && index < m_iSize);
return m_pData[index];
}

int CArrayInt::GetMax()
{
int max = m_pData[0];
for(int i = 1; i < m_iSize; i++)
{
if(max < m_pData[i])
max = m_pData[i];
}
return max;
}
其他要添加什么成员函数都随你喜欢了
你只要象这样调用:CArrayInt a(10);
你可能还要向其中添加一个设置元素值的函数,应该没问题

#include<stdio.h>
main()
{
int a[3]={10,20,30};
int i,t;
for(i=1;i<3;i++)
if(a[i-1]>a[i])
{
t=a[i-1];
a[i-1]=a[i];
a[i]=t;
}
printf("最大值是%d”,t);
getchar();
}