似乎找不到错误在哪里。我认为没有循环实施的问题。我很确定所有.h文件都包含在需要的位置。数组继承自BaseArray:

错误:

In file included from driver.cpp:6:0:
Array.h:10:1: error: expected class-name before ‘{’ token
 {

BaseArray.h:
#ifndef _BASEARRAY_H_
#define _BASEARRAY_H_

#include <cstring>

template <typename T>
class BaseArray
{
    public...
}
#include "BaseArray.inl"
#include "BaseArray.cpp"

#endif   // !defined _BASEARRAY_H_

BaseArray.cpp:
#include "BaseArray.h"
#include <stdexcept>
#include <iostream>

//..Constructors, Destructors, Functions...

Array.h:
#ifndef _ARRAY_H_
#define _ARRAY_H_

#include "BaseArray.h"
#include <cstring>


template <typename T>
class Array: public BaseArray
{
public:
    ......
};
#include "Array.inl"
#include "Array.cpp"

#endif   // !defined _ARRAY_H_

Array.cpp
#include "Array.h"
#include "BaseArray.h"
#include <stdexcept>
#include <iostream>
//
// Array
//


template <typename T>
Array <T>::Array (void): BaseArray<T>()

//...more and more code

最佳答案

更改此:

class Array: public BaseArray

对此:
class Array: public BaseArray<T>

因为BaseArray是模板类。

此外,在头文件中,不要在类(class)末尾添加分号。

10-08 00:19