链接错误与非法呼叫
link error with illegal call
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
错误准确地
说明了问题所在。如果要调用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);
相关文章:
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- 呼叫运营商<<临时
- 编写代码时C++出现错误:错误 1 错误 C2601:'circle':本地函数定义是非法的
- C++中的移动分配出现问题.非法指令: 4.
- while 循环 c++ 中的非法指令
- 使用 ISdigit 通知任何检测到的非法字符
- 非法,左操作数具有类型 'DWORD [29]'
- 来自 VS C++ 在 Windows 上的非法指令
- WinLamb 错误:成员初始化非法
- 呼叫 QSound,它们之间有延迟 Qt C++
- 什么是呼叫说明
- "class":非法使用此类型作为表达式 如何解决?
- AVX512 非法指令
- 在Visual Studio中查找非法内存访问
- 为什么基于范围类型的大括号上循环init列表是非法的c++
- CUDA非法访问内核内存
- 为什么make_shared在不同的呼叫中分配相同的地址?
- 来自简单循环的 OpenAcc 错误:内核执行期间的非法地址
- 错误:类型"std::__1::basic_string<char>"不提供呼叫运算符
- 链接错误与非法呼叫