c++ - 具有不同实例化的静态模板类变量是否相同?

标签 c++ templates static static-members

说我有课

template <typename T>
class MyClass
{
    static int myvar;
}

接下来的作业会发生什么?

MyClass<int>::myvar = 5;
MyClass<double>::myvar = 6;

按照标准会发生什么?我要有两个版本的 MyClass::myvar 还是只有一个?

最佳答案

是的,会有两个具有两个不同值的变量。但那是因为两者是完全不相关的类。这就是模板的工作原理。不要将它们视为类,而是将它们视为一组构建类的规则。

关于c++ - 具有不同实例化的静态模板类变量是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19274625/

相关文章:

c++ - 包括模板标题

c++ - opencv中的视频文件

c++ - 错误 : [typedef inside a class] does not name a type

c++ - 如何从 C++11 匿名函数内部访问局部变量?

c++ - 我如何从模板中的指针获取类型?

css - 我似乎无法使用 Django 加载我的静态文件

c++ - 强制 gsl::as_span 返回一个 gsl::span<const T>?

c# - WPF 数据模板和绑定(bind)

java - FindBugs:类内的静态实例初始化

java - java中如何在另一个类的静态方法中调用非静态方法?