链接错误与非法通话

时间:2015-11-30 15:07:04

标签: c++ templates generic-programming template-classes

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

1 个答案:

答案 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);