回 帖 发 新 帖 刷新版面

主题:各位前辈,小弟新人,前来求助,十万火急!!!

#include<iostream>
#include<string>
using namespace std;
//
class Alist
{
public:
    int size;
    int fence;
    string* listArray;
         //以上为数据成员;一个小的顺序表以string数组为载体。fence表示当前位置。size为其大小。
    Alist(const int& i=100)
    {
        size=i;
        fence=0;
        listArray=new string[size];
    }
    //构造函数。
    ~Alist()
    {
        delete[]listArray;
    }
    //析构函数
[color=#FF0000]    bool operator==(const Alist& d)
    {
        if(size!=d.size)
        {
            return false;
        }
        else
        {
            for(int i=0;i<size;++i)
            {
                if(listArray[i]!=d.listArray[i])
                {
                    return false;
                }
            }
        }
        return true;
    }
    //重载==以便于判断两Alist对象是否相等
    Alist operator=(const Alist& d)
    {
        size=d.size;
        fence=0;
        for(int i=0;i<d.size;++i)
        {
            listArray[i]=d.listArray[i];
        }
          //重载=,用以Alist对象赋值用。
    }[/color]
};
问题应该是出在两个重载的函数上。
我建一个main函数
头文件包含后
实现这两个。
int main()
{
    Alist i;
    Alist j=i;
}
会出现内存不可读的错误。
我用的是VC++6.0;
实在是想不通哪儿有问题。请各位高手指教

回复列表 (共3个回复)

沙发


在main函数中没有初始化!应该是这块你试试吧

板凳

应该不是这个问题。因为Alist i;编译没问题,而且运行也没问题。Alist i; Alist j=i; 编译没问题;他应该调用了默认构造函数;运行时出现一个对话框“。。。。内存不能为read”。

3 楼

两个重载函数都没用到,怎么可能是重载函数的问题呢?
内存不可读往往是指针使用错误造成的,
 string* listArray; //listArray诗歌string数组
 listArray=new string[size]; //出错,返回的是一个string类的地址!
应该如此。。。没试过。。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册