0
CUtil<char>::input(command);

上記のコードを "main.cpp" に記述し、そのコードのヘッダー ファイルを作成しました。これを以下に記述します。

しかし、次のエラー メッセージが表示されました。

C2352: 'class::function': 非静的メンバー関数の不正な呼び出しです。

どうしたの?

#ifndef CUTIL_H
#define CUTIL_H

template <typename T>

class CUtil {
public:
    void input(T& command) {
        std::cin >> command;
        if (std::cin.fail()) {
            std::cin.clear();
            std::cin.ignore(100, '\n');
        }
    }
};

#endif
4

1 に答える 1

0

エラーは、何が間違っているかを正確に示しています。呼び出したい場合は、静的にするか、代わりに呼び出すインスタンスを用意CUtil<char>::input(command)する必要があります。inputCUtil<char>input

静的関数なし:

CUtil<char> myUtil;
myUtil.input(command);

静的関数の場合:

template <typename T>
class CUtil {
public:
    static void input(T& command) {
       // ...
    }
};

// ...
CUtil<char>::input(command);
于 2015-11-30T15:09:34.237 に答える