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
答案 0 :(得分:0)
错误说明究竟出了什么问题。如果您想致电CUtil<char>::input(command)
,则需要设置input
静态,或者选择CUtil<char>
的实例来呼叫input
:
没有静态功能:
CUtil<char> myUtil;
myUtil.input(command);
使用静态功能:
template <typename T>
class CUtil {
public:
static void input(T& command) {
// ...
}
};
// ...
CUtil<char>::input(command);