![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 2 Всего: 12 |
Темой ранее задавал вопрос по поводу перегрузки двух операций, но для вопроса здесь, мне придется привезти фрагмент файлика, он небольшой, но хитрый....
Сразу скажу, программа работает, но писал не я... ) Назначение программы: Уничтожать динамические объекты, будь то, массивы или одиночные объекты Вопрос (!!!): Когда могут вызваться, а главное как перегруженные операторы "->" у класса TPointer и закрытый деструктор базового класса... я не допер, но может туплю... В коде выделю эти моменты !!! Сразу скажу, что скомпилить мне удалось только на вижуал студио под виндой, под gcc не получилось
Мне просто интересно, зачем автор определял их содержимое, если невозможно их вызвать, хотя я могу ошибаться, скорее так и есть.... Если кто понял эти фрагменты кода, отпишитесь пожалуйста. Заранее благодарен за помощь |
|||
|
||||
| Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
никак, оно ведь private, а друзей у класса нет (это сделано для того, что-бы пользователь класса размещал объекты класса TPointer и TAPointer в стеке)
Это сообщение отредактировал(а) Lazin - 29.5.2008, 12:11 |
||||
|
|||||
| null56 |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 2 Всего: 12 |
На счет того, чтобы вызывать нельзя было new и delete это видно, он даже сам написал...
но зачем вот это???
если это не вызовится, зачем что - то внутри писать... я вот думаю и второе
как вот так? если оператор вернет указатель на объект
|
||||||
|
|||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
так это тоже приват )) используй не приватные функции , если базовый класс редактировать нельзя то делать так : T* operator ->() { return operator T*(); }; |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
то рекурсивно вызовется оператор -> для этого указателя, это называется smart pointer смотри стандарт - раздел 13.5.6 Добавлено через 2 минуты и 21 секунду неа |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
имелось ввиду что P в привате, а не оператор -> )) |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |