C++模板类里的静态成员问题
这两天没事找了本《STL源码剖析》看下,可是刚看开头就出问题了,(本人菜鸟)特来请教
问题是这样的,书中有个测试stl_config.h中的各种组态问题,第一个例子
#include <iostream> using namespace std; template <typename T> class testClass { public: static int _data; }; int testClass <int>::_data = 1; //这里出错 int testClass <char>::_data = 2; int main(int argc, char *argv[]) { cout << testClass< int >::_data << endl; cout << testClass< char >::_data << endl; return 0; }
在初始化静态变量是出错了
11 5 [Error] specializing member 'testClass<int>::_data' requires 'template<>' syntax
不明白为何出错,必须写为下面这样吗?
template <typename T> int testClass <T>::_data = 1;
如果是,那岂不是书中出错?(我是菜鸟,觉得这么有名的书,估计没错吧)特来请教!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
顶一个,g++也遇到这个问题,OC上,投支持票还要积分。。。
必须给嘛?直接用int实例化,不行?还有就是这代码是书上的!
回复
净信书不如无书
你模板中类型T体现在哪里?
谢谢 原来这样!好吧 学习了!!
template<> int testClass <int>::_data = 1;