2010-07-11 2 views
1

Я не уверен, могу ли я описать проблему, но я постараюсь изо всех сил. Вот так:круговой указатель члена класса?

Если я могу хотеть, чтобы класс1 имел указатель как переменную-член, указывающую на другой класс class2. Между тем, я хочу, чтобы класс2 также имел указатель как переменную-член, указывающую на класс1. Это возможно?

class Class1 
{ 
private: 
    Class2* classptr; 
     ... ... 
public: 
     ... ... 
}; 

class Class2 
{ 
private: 
    Class1* classptr; 
     ... ... 
public: 
     ... ... 
}; 

Мне кажется, что ни один из Class1 и Class2 не был признан в качестве идентификатора. Я думаю, что ни один из Class1 и Class2 не создается. Поправьте меня, если я ошибаюсь.

ответ

7

Вам необходимо отправить декларацию. Либо:

class Class1 
{ 
private: 
    class Class2* classptr; 
     ... ... 
public: 
     ... ... 
}; 

или:

class Class2; 

class Class1 
{ 
private: 
    Class2* classptr; 
     ... ... 
public: 
     ... ... 
}; 
Смежные вопросы