错误:在'('标记之前)的预期构造函数,析构函数或类型转换

时间:2015-02-01 22:53:25

标签: c++

我看过其他线索,但似乎没有人帮助我。我收到此错误消息:

  

Corpus.cpp:全球范围:
  Corpus.cpp:12:15:错误:在'('token

之前的预期构造函数,析构函数或类型转换

这是Corpus.cpp

#include <stdio.h>
#include "Corpus.h"
#include <fstream>

double prop[26];

Corpus::Corpus() : prop {0.09, 0.02, 0.02, 0.04, 0.12, 0.02, 0.03, 0.02, 0.09, 001, 0.01, 0.04,
            0.02, 0.06, 0.08, 0.02, 0.01, 0.06, 0.04, 0.06, 0.04, 0.02, 0.02, 0.01, 0.02, 0.01}
{
}

Corpus::Corpus(fstream f) {
    Scanner scan = new Scanner(f);
    int i=0;
    while(scan.hasNext() && i<26) {
            prop[i++] = scan.nextInt();
    }
}

char Corpus::proportion(char c) {
    int i = c=97;
    return prop[i];
}

这是Corpus.h

#ifndef CORPUS_H
#define CORPUS_H
#include <stdio.h>
#include <fstream>
class Corpus {
public:
    double prop[26];
    Corpus();
    Corpus(std::fstream f);
    char proportion(char c);
};

#endif

1 个答案:

答案 0 :(得分:0)

第一个错误,导致该错误消息的错误是

Corpus::Corpus(fstream f) {

应该是:

Corpus::Corpus(std::fstream f) {

在错误消息中它说Corpus.cpp:12:15:; 12是行号,15是该行中的字符号;因此,指向f fstream中的Scanner scan = new Scanner(f);,这正是问题所在。

但是,一旦修复,就会出现更多错误。 Scanner是一个错误。 Scanner scan{f};并未在任何地方定义,但即使它是,也不是Java。 C ++创建对象的方式是{{1}}。