私は次のような問題を持っている、入れ子になったクラスで(この場合はstruct
)名前空間とタイプC++ネストされたクラスの関数の戻り値の型と名前空間
class Example
{
struct Node { /* with all the methods it needs */ }
Node * func();
}
を返す今、私は外にfunc
の実装を入れたいですクラス。だから私がやったことです:
Example::Node * Example::func()
{
return nullptr;
}
と私は多くのエラーを得たexample
テンプレート
template<typename T>
class Example {/* all the same here */}
template <typename T>
Example<T>::Node * Example<T>::func()
{
return nullptr;
}
を作ったまでは、うまく働きました。それから私は、私はエラーを取得する
template <typename T>
Example::Node * Example<T>::func()
{
return nullptr;
}
を試してみました:私の知る限り、これは関数がその名前空間に属することを意味するのでExample<T>::func()
は、正しいことを知っているように
を「クラステンプレートを使用すると、テンプレート引数リストが必要です」。しかし、私の関数の戻り値の型についてはわかりません。どんな助け?
これは本当に私の質問に答えるが、私は尋ねた前に、私は 'typename'キーワードこれは本当に働い – user5692938