所以现在我已经设置了一个非常基本的类 cnt。即返回错误
error: 'Cnt' does not name a type
对于 cnt() 和 cnt(T t)。据我所知,这符合我的教科书定义模板类的方式,那么我在这里做错了什么?
cnt.h:
#ifndef CNT_H_
#define CNT_H_
#include <iostream>
template <typename T>
class Cnt
{
public:
Cnt();
Cnt(T t);
private:
T item;
int cnt;
};
#include "cnt.cpp"
#endif
cnt.cpp:
template<typename T>
Cnt<T>::Cnt()
{
cnt = 0;
}
template<typename T>
Cnt<T>::Cnt(T t)
{
item = t;
cnt = 0;
}
在模板元编程中,你的声明和定义应该在同一个头文件中,
#ifndef CNT_H_
#define CNT_H_
#include <iostream>
template <typename T>
class Cnt
{
public:
Cnt();
Cnt(T t);
private:
T item;
int cnt;
};
template<typename T>
Cnt<T>::Cnt()
{
cnt = 0;
}
template<typename T>
Cnt<T>::Cnt(T t)
{
item = t;
cnt = 0;
}
我是一名优秀的程序员,十分优秀!