1. ホーム
  2. スクリプト・コラム
  3. その他

[解決済み】エラー「C++はメソッド定義中のすべての宣言に型指定子を必要とする」。

2022-01-11 15:58:14

質問

ファイルを一行ずつ読み込んで配列に格納する小さな関数を実装したいのですが、次のようなコードです。

StringList.h

#ifndef StringListH
#define StringListH

#include <vector>
#include <string>

class StringList {
public:
     StringList();
     ~StringList();
     void PrintWords();
private:
     size_t numberOfLines;
     std::vector<std::string> str;
};

#endif

文字列リスト(StringList.cpp)

#include "StringList.h"
#include <fstream>
#include <istream>
#include <algorithm> // std::copy
#include <iterator>  // istream_iterator

using namespace std;

StringList::StringList()
{
    ifstream myfile("input.in");
    if (myfile.is_open())
    {
        copy(
            istream_iterator<string>(myfile),
            istream_iterator<string>(),
            back_inserter(str));
    }
    numberOfLines = str.size();
}

StringList::~StringList(){
    //Deconstructor
}

// Error Happens Here
StringList::PrintWords(){
    //Print My array
}

実行すると、エラーが発生します。

C++ requires a type specifier for all declarations whilst defining methods.

headファイルで定義したメソッドであれば、戻り値の型、名前、パラメータに関係なく、このエラーが発生するようです。もしPrintWords()を削除すれば、プロジェクトは正常にビルドされます。

どうすればいいですか?

として宣言しています。 void であるべきですが、定義に入れ忘れました。

void StringList::PrintWords()