0

我有这样的东西

template <class T>
class Outer {
    public: class Inner;

    static Inner* x;

    //...

    class Inner {
        //...
    };
};

// Not working
template <class T>
Outer<T>::Inner* Outer<T>::x = NULL;

我得到的错误说::16: error: expected constructor, destructor, or type conversion before ‘*’ token

4

1 回答 1

1
template<class T>
class Outer {
public: 

    class Inner;

    static Inner* x;

    //...

    class Inner {
        //...
    };
};

template<class T>
typename Outer<T>::Inner *Outer<T>::x = NULL;
  1. 至于typenameclass,请参考模板中关键字'typename'和'class'的C++区别

  2. 为什么会这样,请参考模板中依赖类型的问题

于 2013-04-06T01:51:33.563 回答