错误:“ void”之前的预期构造函数,析构函数或类型转换

时间:2018-11-13 12:19:51

标签: c++ class

所以尝试编译类的.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){

如果有人知道发生了什么,请解释。

谢谢大家

2 个答案:

答案 0 :(得分:0)

我的玻璃球说您忘记在ParInt.hh的末尾放分号。您可能想提供这两个标头的源代码,因为没有它们很难调试。

答案 1 :(得分:0)

当您执行#include …时,编译器会将文件的内容粘贴到#inculde的位置(几乎,有些细微的事情涉及行号和文件名,但是您可以忽略它们)。

有时您会收到错误所在的行的错误消息。 #include也可能发生这种情况,错误可能出在其中一个文件中。