4

#includesと関係があると思いますが、初めて使ってみたので少し迷ってしまいました。明らかな間違いがあったかどうか誰かがすぐに言うことができるかどうか私はちょうど疑問に思いました。

 /** @file Translator.cpp */

#include <fstream>
#include "Translator.h"
#include <vector>

Translator(std::ifstream& fin)  //error appears on this line
{
    T1(fin);
    T1.createTable(fin);
    T2(fin);
    T2.createTable(fin));
    string temp;
    while(!fin.eof())
    {
    fin >> temp;
    message.push_back(temp);
    }
}

御時間ありがとうございます。

4

2 に答える 2

7

voidヘッダーを見ずにこの質問に正確に答えるのは難しいですが、これが関数の場合は、関数の定義にの戻り型を追加する必要があります。

void Translator(std::ifstream& fin) {
    ...
}

これがコンストラクターの場合は、修飾名を指定する必要があります。

Translator::Translator(std::ifstream& fin) {
    ...
}
于 2013-02-11T00:12:50.883 に答える
1

宣言がなければ、Translator言うのは少し難しいですが、コンストラクターであることが意図されている場合は、である必要がありますTranslator::Translator(std::ifstream& fin)。メソッドを意図している場合は、戻り型を指定する必要があるため、のようになりvoid Translator(std::ifstream& fin)ます。

于 2013-02-11T00:16:19.833 に答える