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
私の2番目のヘッダーは最初のヘッダーを使用しており、次のようになります。
#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で実行すると、「Variable ArrayIntListは抽象クラスです」というエラーが表示されます。上記の.ccファイルで定義したため、これがどのように行われるのかわかりません。何か案は?