0

外部.h:

template<typename T>
class Outer
{
private:

    class Inner
    {
    public:

        int m_int;
        T * m_template;

        Inner(int p_int, const T & p_template);

        ~Inner();
    };
    Inner * m_innerList[];
    void createInner(int value, const T & template);
    Inner * getInner(int p_value) const;

外部.cpp:

#include "Outer.h"


template<typename T>
void Outer<T>::createInner(int p_value, const T & template) const
{
        Inner * newInner = new Inner(p_value, template);
        m_innerList.add(newInner);
}

template<typename T>
Outer<T>::Inner * Outer<T>::getInner(int p_value) const
{
        for(int i = 0 ; i < nbInner ; i++)
        {
                if(m_innerList[i]->m_int == p_value)
                {
                        return m_innerList[i];
                }
        }
}

代码不完整,但我的主要问题是我似乎无法在“Outer.cpp”中创建“Inner”类的新实例,也无法返回“Inner”类的实例。

我想我的“Outer::”路径有问题,或者它可能与“Outer.h”中的私有内容有关,但我还没有找到可行的解决方案。

谢谢你的帮助!

4

0 回答 0