我正在尝试理解静态数据成员模板的概念。我在一本书中遇到了以下示例:
class Collection {
public:
template<typename T>
static T zero = 0;
};
当我尝试执行程序时,它给出的错误是:
undefined reference to `Collection::zero<int>'
为了解决上述错误,我尝试在上面的程序中添加以下代码,但它仍然给出错误:
template<typename T> T Collection::zero = 0; //even after adding this it still gives error
错误现在说:
duplicate initialization of 'Collection::zero'
我的问题是,这本书的这个例子是一个错误(错字)。如果是,那么问题是什么,我该如何解决?