类模板中的静态成员

时间:2017-03-13 16:33:51

标签: c++ design-patterns static class-template

我正在编写一个类模板,以便在出现问题时实现Singleton。

虽然在.h文件中有静态指针,但由于链接器问题(lnk 2001和lnk 1120 on vs 15),它无法编译。

我简化了我的代码以获得更易理解的问题:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container1"></div>
<div class="container2"></div>
<div class="container3"></div>

我的班级SingletonTemplate.h(没有.cpp顺便说一句)

#pragma once
#include "SingletonTemplate.h"
int main()
{
    SingletonTemplate<int>::test();
}

我在几篇帖子中读到,静态变量的进一步声明可以解决这个问题。我在我的函数之外添加了这个(但仍然在.h中):

template<class T>class SingletonTemplate
{
public:
    static int myInt; 
    static void test()
    {
        SingletonTemplate<T>::myInt = 1;
    }
}

这样做解决了我的问题,但我不知道为什么。 所以,如果有人能解释我这条线的目的是什么,那就太棒了。

提前致谢

0 个答案:

没有答案