关于 typename 的用法
下面的程序,编译通不过
#include <iostream>
using namespace std;
template <class T>
class MyClass
{
public:
typename T::SubType;// *ptr; // 注意这一行
SubType *ptr;
};
class Q
{
public:
typedef int SubType;
int x;
};
int main()
{
MyClass<Q> x;
x;
return 0;
}
如果这样写,就没有问题了,why???
template <class T>
class MyClass
{
public:
typename T::SubType *ptr; // 注意这一行
//SubType *ptr;
};