| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Помогите понять два фрагмента кода |
| Автор: null56 29.5.2008, 11:55 | ||
| Темой ранее задавал вопрос по поводу перегрузки двух операций, но для вопроса здесь, мне придется привезти фрагмент файлика, он небольшой, но хитрый.... Сразу скажу, программа работает, но писал не я... ) Назначение программы: Уничтожать динамические объекты, будь то, массивы или одиночные объекты Вопрос (!!!): Когда могут вызваться, а главное как перегруженные операторы "->" у класса TPointer и закрытый деструктор базового класса... я не допер, но может туплю... В коде выделю эти моменты !!! Сразу скажу, что скомпилить мне удалось только на вижуал студио под виндой, под gcc не получилось
Мне просто интересно, зачем автор определял их содержимое, если невозможно их вызвать, хотя я могу ошибаться, скорее так и есть.... Если кто понял эти фрагменты кода, отпишитесь пожалуйста. Заранее благодарен за помощь |
| Автор: null56 29.5.2008, 12:18 | ||||||
| На счет того, чтобы вызывать нельзя было new и delete это видно, он даже сам написал... но зачем вот это???
если это не вызовится, зачем что - то внутри писать... я вот думаю и второе
как вот так? если оператор вернет указатель на объект
|
| Автор: mes 29.5.2008, 12:35 |
так это тоже приват )) используй не приватные функции , если базовый класс редактировать нельзя то делать так : T* operator ->() { return operator T*(); }; |
| Автор: Lazin 29.5.2008, 12:42 |
то рекурсивно вызовется оператор -> для этого указателя, это называется smart pointer смотри стандарт - раздел 13.5.6 Добавлено через 2 минуты и 21 секунду неа |
| Автор: mes 29.5.2008, 13:00 |
имелось ввиду что P в привате, а не оператор -> )) |