Как использовать член внешнего класса внутри внутреннего класса? - PullRequest
0 голосов
/ 06 августа 2020

Я создал class outer, и он имеет int a в качестве частной переменной-члена.

И я создал класс class outer::inner.

Я хотел бы получить доступ и изменить int a in class outer::inner

как это сделать?

(я думаю, что ключевое слово this относится к самому себе (т.е. к классу external :: inner instance). Я думаю, что это поможет в решении этой проблемы. .. не правда ли?)

Это мой код.

template<typename Key, typename Pred, typename Allocator> class set_t;


template<typename Key>
class iterator_set{
    public:
        iterator_set() : ptr(0) {}
         ...
        void foo(){
         
         // I would like to access 'set' variable in this field
         // like
         // set=set->left;

         }
        ...

    private:
        Key* ptr;
        friend class set_t<Key, std::less<Key>, std::allocator<Key>>;
};

template<typename Key>
struct node{
    Key value;
    struct node* left;
    struct node* right;  
};

template<typename Key, typename Pred=std::less<Key>, typename Allocator=std::allocator<Key>>
class set_t{
    public:
        set_t();
        ...        
        typedef iterator_set<Key> iterator;
        typedef struct node<Key> node;
        ...
    private:
        node* set;
};

void main(){
   set_t<string>::iterator iter;
   iter.foo();   //this is a target line
}


...