我看过其他线索,但似乎没有人帮助我。我收到此错误消息:
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
答案 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}}。