0

这是我得到的错误:

StatisticsProcessor.cpp:在成员函数'void StatisticsProcessor::loadData(std::string)'中:StatisticsProcessor.cpp:70:16:错误:在'((StatisticsProcessor*)this)->StatisticsProcessor中请求成员'插入': :dataArray',属于非类类型 'Element* {aka int*}' make: * [StatisticsProcessor.o] 错误 1

这是我的代码的那一部分:

if(inStream.is_open()){
    for(int i = 0;;){
        if(!inStream.eof()){
            Element line = 0;
                if(i > 0){
                    inStream >> line;
                    dataArray.insert(line);
                }
                else{
                    dataArray = new(nothrow) Element[line];
                    assert(dataArray != 0);
                }
        }
        else if(inStream.eof()) break;
    }
            // Close file stream
            inStream.close();
}

这是我的插入功能:

void StatisticsProcessor::insert(Element e){

    // Increment size
    size++;

    // Add in new value
    dataArray[size-1] = e;
}

Element 只是 int 的 typedef,而 dataArray 的类型为 Element*
inStream 是一个 ifstream 对象,我试图从文件中读取数字并将它们插入到我的列表类中(本质上是一个整数数组)。我究竟做错了什么??

4

1 回答 1

2

正如您向我们展示的那样, theinsertStatisticsProcessor该类的成员函数。如果要调用该函数,则语法为:

x.insert(y);

wherex是类型的对象,StatisticsProcessor并且y是类型Element(int) 的对象。相反,您x是一个int*(指向 int 的指针)。就此而言,指针没有名为 的成员函数insert,也没有任何成员函数。

于 2013-09-22T22:30:16.227 回答