对于类,我们创建一个继承自模板化类Queue的类Sim,然后在程序p05中使用它们。到目前为止,我只是想确保类Queue编译并且Sim的接口中没有语法错误。队列编译正常。没有编写sim的实现,只是类定义。它们都通过makefile链接到p05,我收到以下错误:
~$ make -f p05make
g++ -c -g p05.cpp
In file included from p05.cpp:20:0:
Sim05.h:24:23: error: expected class-name before â{â token
make: *** [p05.o] Error 1
tt054@cs:~$
我不确定为什么这是因为我已经包含了Queue05.h,我的类声明的语法与我们上次做类似事情的语法相同。
Queue05.h
#ifndef Queue05_h
#define Queue05_h 1
//Queue05.h contains the interface for class Queue
#include <cstdlib>
#include <cstring>
#include <iostream>
template <class T>
class Queue {
//member data and functions omitted for length
};
#endif
Sim05.h
#ifndef Sim05_h
#define Sim05_h 1
#include <fstream>
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
#include "Queue05.h"
//next line is where error occurs
class Sim:public Queue{
//member data and functions omitted for length
};
#endif
答案 0 :(得分:1)
正确的语法:
class Sim : public Queue<Type>{
...
}