写了个IntArray,居然编译不过,请大家帮我看看,就几句话
class DavidIntArray
{
private:
int _size;//存储数组大小
int* ia;//存储数组指针
public:
DavidIntArray(const DavidIntArray& rhs);//用已有的DavidIntArray对象给当前对象赋值的构造函数
void init(int sz,int* array);//初始化DavidIntArray
inline int size() const;//得到数组大小
};
//用已有的DavidIntArray对象给当前对象赋值的构造函数
DavidIntArray::DavidIntArray(const DavidIntArray& rhs)
{
this-> init(rhs.size,rhs.ia);//Error
}
//初始化DavidIntArray
void DavidIntArray::init(int sz,int* array)
{
//设置数据成员
this-> _size=sz;
this-> ia=new int[this-> _size];
//初始化内存
for(int ix=0;ix <this-> _size;++ix)
{
if(!array)
{
this-> ia[ix]=0;
}
else
{
this-> ia[ix]=array[ix];
}
}
}
为什么这样调用this-> init(rhs.size,rhs.ia);会有错
[解决办法]
this-> init(rhs.size,rhs.ia);
=============================
this-> init(rhs._size,rhs.ia);
[解决办法]
DavidIntArray::DavidIntArray(const DavidIntArray& rhs)
{
this-> init(rhs.size,rhs.ia);//Error
}
===========================================================
this-> init(rhs._size,rhs.ia);