我有 4 个 C++ 文件、2 个头文件和 2 个 .cc 文件。这只是一个概念证明,但我似乎无法正确理解。
我的第一个标题如下所示:
#ifndef INT_LIST_H
#define INT_LIST_H
class IntList
{
public:
//Adds item to the end of the list
virtual void pushBack(int item) = 0;
};
#endif
我的第二个标题使用第一个标题,如下所示:
#ifndef ArrayIntList_H
#define ArrayIntList_H
#include "IntList.h"
class ArrayIntList : public IntList
{
private:
int* arrayList;
int* arrayLength;
public:
//Initializes the list with the given capacity and length 0
ArrayIntList(int capacity);
//Adds item to the end of the list
virtual void pushBack(int item) = 0;
};
#endif
我的第一个 .cc 文件填充了上一个类的方法:
#include <iostream>
#include "ArrayIntList.h"
ArrayIntList::ArrayIntList(int capacity)
{
//make an array on the heap with size capacity
arrayList = new int[capacity];
//and length 0
arrayLength = 0;
}
void ArrayIntList::pushBack(int item)
{
arrayList[*arrayLength] = item;
}
这是我的主要功能:
#include <iostream>
#include "ArrayIntList.h"
int main(int argc, const char * argv[])
{
ArrayIntList s(5);
}
当我在 Xcode 中运行它时,我收到“变量 ArrayIntList 是一个抽象类”的错误,我不明白这是怎么回事,因为我在上面的 .cc 文件中定义了它。有任何想法吗?