Outer.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;
Outer.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」内のプライベートに関連している可能性があると考えましたが、まだ有効な解決策を見つけることができませんでした。
ご協力いただきありがとうございます!