你如何访问另一个类中的内部类?

时间:2014-05-02 16:30:17

标签: c++

我在另一个类中有一个Node类,它在Structure类中是私有的,这是我正在使用的主类。然后我在另一个.cpp文件中,该文件实现了structure.h文件中的函数,该文件包含Structure类和嵌套在private类下的Structure类中的Node类。

创建返回类型的Node *时,如何访问该Node类。我一直搞乱它一段时间没有任何作用。它允许我返回int,bool,double,但不返回Node *。

"Structure.h"
template <class T> 
class Structure
{
    public:
        // Structure functions();
    private:

    class Node
{
    public::
        // Node functions and variables;
}
    // Structure functions_private();
}

2 个答案:

答案 0 :(得分:1)

你的意思是:

template< class T >
typename Structure<T>::Node* Structure<T>::MyMemberFunction()
{
    return new Node();
}

作为一个例子。

此外,您还需要将此文件放在头文件中而不是源文件中。

答案 1 :(得分:1)

在类定义中,您只需将类型称为Node

外部,如果它取决于模板参数,则需要限定名称和typename

Structure<int>::Node * some_function();  // not dependent, no typename

template <typename T>
typename Structure<T>::Node * some_template(); // dependent, needs typename