У меня есть класс с (не умным) указателем на объект интерфейса (позволяет вызвать его pInterface), и я создаю вложенный класс, который также нуждается в доступе к этому интерфейсу. Я собираюсь обойти эту проблему, передавая указатель на интерфейс в конструктор вложенного класса так:Указатель на указатель вопроса
CNestedClass someClass(pInterface, ...);
Однако я не уверен, что лучший способ хранения этого указателя во вложенном классе. Я мог бы использовать:
1) A scoped (or other smart) pointer (to the original object)
2) A pointer to a pointer
Что бы вы, ребята, предложили и почему?
EDIT: я должен уточнить - вложенный класс должен будет вызывать методы на объекте интерфейса, однако он не создает его (или изменяет объект «указал» на), за это отвечает родительский класс.
Не могли бы вы более подробно остановиться? Если я использую интеллектуальный указатель, вероятно, было бы неплохо использовать общий указатель как в родительском, так и вложенном классах? – Konrad
Я согласен, что единственная проблема заключается в том, что он должен оставаться в силе. Но другие методы доступны в зависимости от того, какой ребенок используется. (Пример: если продолжительность жизни ребенка будет меньше, чем родительский (затем передайте ссылку)). –
+1 ссылка. Многие другие ответы касаются указателя на указатель, где ссылки гораздо лучше подходят. –