错误:未知道的类型名称"my_class"
error: unkown type name "my_class"
所以我声明了一个名为my_class的模板类,并在另一个文件"main.cpp"中使用这个类。
我包括"my_class.h"在我的main.cpp和我得到未知类型名称错误,有人知道发生了什么?
下面是一些代码:// "my_class.h"
#ifndef TYPE_H_DEFINE
#define TYPE_H_DEFINE
#include <vector>
#include <algorithm>
namespace wtvr {
template<class T>
class my_class {
public:
void add(const T&);
const T& get();
private:
std::vector<T> my_class_vec;
};
template<class T>
void my_class<T>::add(const T& obj) {
my_class_vec.push_back(obj);
}
template<class T>
const T& my_class<T>::get() {
std::random_shuffle(my_class_vec.begin(), my_class_vec.end());
return my_class_vec[0];
}
}
#endif
这是一个棘手的问题!
结果是我的include守卫名
#ifndef TYPE_H_DEFINE
#define TYPE_H_DEFINE
已经被标准c++库使用了,所以我把它改成了一个不同的名字,难怪Bjarne Stroustrup讨厌宏!!谢谢大家!
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- "Undefined class"作为is_base_of的论据
- 如何将class.cpp和class.hpp编译为一个.o文件
- '{'标记之前的预期类名,然后在预声明时无效使用不完整的类型'class class_name'
- 如何使用"derived input class"创建派生类?
- 错误:"Left of getValue must have class/struct/union"
- ' class a : b ' 和 ' class a : public b ' 之间的继承类不同
- Pybind11 Class Definition
- 在C++中使用没有合作伙伴Class/Cpp文件的头文件是否实用
- C2011 'CMemDC':Visual Studio 2019中的'class'类型重新定义
- TypeError: [c++ addon class] 不是构造函数
- C++ class template
- 当初始值设定项是基类名时'initializer does not name a non-static data member or base class'错误
- Clearing Class Foo with new(pFoo) Foo()
- C++ class vs a library
- 继承类时"invalid use of incomplete type ‘class tree_node_t’"
- 使用"class"关键字,后跟未声明的标识符
- LNK2001 "How can I make a WNDPROC or DLGPROC a member of my C++ class?"