template<class Concept> class OMAbstructContainer
{
friend class OMIterator<Concept> ;
// ...
};
template<class Concept> class OMStaticArray :
public OMAbstructContainer<Concept> {
protected:
Concept *theLink;
int count;
void* AllocateMemory(int size);
bool ReleaseMemory(void* pMemory);
public:
// Constructor
OMStaticArray(int size): count(0)
{
theLink = NULL;
theLink = (Concept*) this->AllocateMemory(size);
}
};
template<class Concept> class OMCollection :
public OMStaticArray<Concept>{
public:
// Constructor
OMCollection(int theSize=20):
OMStaticArray<Concept>(theSize) {
size = theSize;
}
// Destructor
~OMCollection() { } // The link is delete in ~OMFixed()
//...
};
Теперь я использую вышеуказанную коллекцию, как показано ниже
class MyVar
{
public :
// Constructors and destructors:
MyVar(int Index) { }
// ...
};
OMCollection<MyVar*> m_pCollVars;
Когда я запускаю код выше в компиляторе C ++ vxworks6.8, я получаю следующую ошибку
error: instantiated from 'OMStaticArray<Concept>::OMStaticArray(int) [with Concept = MyVar*]'
У меня много ошибок, как указано выше. Код, используемый для правильной компиляции с использованием компилятора VxWorks 5.5.
У меня следующая ошибка
ошибка: создается из 'OMCollection :: OMCollection (int) [with Concept = MyVar *]'
Я получаю следующую строку:
OMCollection (int theSize = DEFAULT_START_SIZE):
OMStaticArray (theSize) {
размер = размер;
}
Понятия не имею, почему я сталкиваюсь с этими ошибками, может ли кто-нибудь помочь мне, как это можно исправить.
Спасибо!