【发布时间】:2012-12-13 07:15:28
【问题描述】:
我有一个带有静态 const 成员的模板类:
template <class T>
class A
{
public:
A(T val) : t(val) {}
static const int VALUE = 5;
T t;
};
假设在我的代码中某处,我使用 int、char 和 long 类型对其进行实例化。现在我想访问 VALUE:
int main()
{
int i1 = A<int>::VALUE;
int i2 = A<char>::VALUE;
int i3 = A<long>::VALUE;
return 0;
}
上述所有访问同一事物的方法不都是相同的吗?在这种情况下,其他人只是选择随机类型吗?有什么办法可以避免指定类型?
【问题讨论】:
-
不,不同的实例化产生不同的类。我有点明白你的意思,但模板类需要一个类型,即使是
static const。 -
我相信这是因为您可以使用
static const T value而不是指定int类型。 -
@chris:嗯,我要远离这个了,有些困惑我只是没有意识到。
-
@GManNickG,我非常了解这种感觉。