所以尝试编译类的.cc文件时,我总是收到此错误。这是我的.cc代码和.hh代码:
.hh:
#ifndef BINTREE_IO_PARINT_HH
#define BINTREE_IO_PARINT_HH
#include "BinTree.hh"
#include "ParInt.hh"
#include <iostream>
void read_bintree_parint(BinTree<ParInt>& a);
void write_bintree_parint(const BinTree<ParInt>& a);
#endif
.cc:
#include "BinTreeIOParInt.hh"
void read_bintree_parint(BinTree<ParInt>& a){
ParInt x;
BinTree<ParInt> a1;
BinTree<ParInt> a2;
x.llegir();
if(x.primer() != 0 and x.segon() != 0){
read_bintree_parint(a1);
read_bintree_parint(a2);
a.BinTree(x, a1, a2);
}
}
void write_bintree_parint(const BinTree<ParInt>& a){
ParInt x;
if(not a.empty()){
BinTree<ParInt> a1 = a.left();
BinTree<ParInt> a2 = a.right();
x = a.value();
write_bintree_parint(a1);
cout<<" ";
x.escriure();
write_bintree_parint(a2);
a.BinTree(x, a1, a2);
}
}
我得到的错误是这个:
> BinTreeIOParInt.cc:4:1: error: expected constructor, destructor, or type conversion before ‘void’
void read_bintree_parint(BinTree<ParInt>& a){
如果有人知道发生了什么,请解释。
谢谢大家
答案 0 :(得分:0)
我的玻璃球说您忘记在ParInt.hh的末尾放分号。您可能想提供这两个标头的源代码,因为没有它们很难调试。
答案 1 :(得分:0)
当您执行#include …
时,编译器会将文件的内容粘贴到#inculde
的位置(几乎,有些细微的事情涉及行号和文件名,但是您可以忽略它们)。
有时您会收到错误所在的行的错误消息。 #include
也可能发生这种情况,错误可能出在其中一个文件中。