错误:缺少类型说明符-假定为int.c++不支持默认的int

Error: missing type specifier - int assumed. C++ does not support default int

本文关键字:int c++ 不支持 默认 类型 说明符 错误      更新时间:2023-10-16

我编写了一个使用模板的样例类。非常简单:

template <class T>
class myClass
{
public:
    // construction, destruction
    myClass();
    virtual ~myClass();
    class Object
    {
    public:
        Object() { m_pNext = NULL; m_pPrev = NULL; }
        ~Object() {}
        T        m_Value;
        Object*  m_pNext;
        Object*  m_pPrev;
    };
public:
    // accessor functions
    Object* Beginning();
private:
    Object* m_pBegin;
    Object* m_pEnd;
    INT m_nCount;
};
template <class T> 
inline myClass<T>::Object* myClass<T>::Beginning()
{ return m_pBegin; }

template <class T>
inline myClass<T>::myClass()
{
}
template <class T>
inline myClass<T>::~myClass()
{
}

我使用visual studio 2008,这里是编译错误

错误C2143:语法错误:在"*"之前缺少";"…错误C4430:缺少类型说明符-假设为int。注意:c++不支持default-int.

错误链接到这一行:

inline myClass<T>::Object* myClass<T>::Beginning()

谁能告诉我这段代码出了什么问题?

谢谢。

你需要改变

template <class T> 
inline myClass<T>::Object* myClass<T>::Beginning()
{ return m_pBegin; }

template <class T> 
inline typename myClass<T>::Object* myClass<T>::Beginning()
{ return m_pBegin; }

因为myClass<T>::Object是依赖类型