错误:未知道的类型名称"my_class"

error: unkown type name "my_class"

本文关键字:my class 类型 未知 错误      更新时间:2023-10-16

所以我声明了一个名为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讨厌宏!!谢谢大家!