Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа Renesas - High-Perfomance Embedded Workshop Пожалуйста поделитесь знаниями! Расскажите о Renesas - HEW; знаю что в ней можно написать прогу на С, а каковы еще ее возможности? https://www.cyberforum.ru/ cpp/ thread186038.html Поиск исходников алгоритма шифрования DES C++
Друзья, подскажите где найти исходники алгоритма шифрования DES, желательно на Visual C++ без использования WinAPI, но если есть просто C++ или С, то тоже сгодится. Советы по использованию поисковых...
C++ Реализация событий в С++ Мне нужно реализовать события, как в Дельфи или С++ Builder, на Visual C++. Но стандартный С++ не поддерживает указатели на функции-члены класса. В своём блоге за 02.11.10, я попытался расписать, как... https://www.cyberforum.ru/ cpp/ thread185142.html C++ Нужен учебник по стандартным функциям/классам https://www.cyberforum.ru/ cpp/ thread184511.html
Нужен учебник по стандартным функциям/классам C и C++, Борланд С++ буилдер, etc на русском. Во-первых не дублируйте темы. Во-вторых разберитесь как-нибудь с транслитом. И кстати почитайте правила...
Ввод зарезервированных символов ASCII C++
Здраствуйте! Есть консольная программа(си++,ос хр)... как в консоли ввести "крякодзябы"? мне нужно ввести в консоль символы которые за таблицей ascii кодов имеют коды(dec): 181,192,202...ето...
C++ MPI, нахождение простых чисел https://www.cyberforum.ru/ cpp/ thread184161.html
Здравсвуйте! Пишу программу для нахождения простых чисел. Пишу в Visual Studio 2008 на C++. Программу написал и она работает на нескольких ПК. Но проблема в том, что результаты в главный процесс...
C++ Как написать плагин для notepad++? как написать плагин для notepad++? есть какой-нибудь мануал? https://www.cyberforum.ru/ cpp/ thread184060.html Распознать символы с картинки (капчи) C++
здравствуйте! вопрос такой: имеется заранее известная картинка. картинка четкая (это НЕ капча). на картинке в известных местах находятся 5 цифр. делается скриншот. необходимо по нему узнать эти 5...
C++ Книга для начинающего https://www.cyberforum.ru/ cpp/ thread183177.html
Посоветуйте книгу для первокурсника по c++. препод посоветовал гебрерда шилдта "C++. Базовый курс". но сейчас не могу найти ее в продаже а срочно надо. посоветуйте альтернативу....
C++ [СИ] Циклический буфер переменной длины https://www.cyberforum.ru/ cpp/ thread182867.html
Мне дали задание для микроконтроллера (не важен какой, главное, алгоритм) написать циклический буфер переменной длины, равномерно распределенный по всей памяти (EEPROM), чтоб исключить перезапись в...
Создание объекта класса в другом классе!!! C++
//----------------------------------Address.h---------------------------------------------------- class Address { public: const static int SIZE_COUNTRY = 3; const static int SIZE_POSTCODE = 7;...
C++ Visual Studio vs Visual Studio https://www.cyberforum.ru/ cpp/ thread181643.html
Скажите какую версию лучше приобрести, учитывая что 2010 у меня очень зависает. Помогите пожалуйста.
Эксперт С++
2923 / 1272 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
08.11.2010, 12:32 0

Вызов деструкторов членов класса - C++ - Ответ 1093582

08.11.2010, 12:32. Показов 3241. Ответов 10
Метки (Все метки)

Ответ

Гм. Я бы выразился в том смысле, что приведенный код не просто плохой - он очень плохой. Надеюсь, коллега Alexanches найдет время его поправить. Проблемы, которые я вижу с ходу:
1. Совершенно непонятно, какой из классов владеет памятью, выделяемой под строку. Выделяется память в одном классе, удаляется в совершенно другом.....
2. В конструкторе класса cName переменной fio присваивается адрес временного объекта; и куда будет указывать эта переменная после завершения тела конструктора - даже Б.Г. не знает....

Я бы предложил переделать этот код следующим образом:
1. Четко определить "зоны ответственности" классов. Так, класс MyString должен только хранить строку и предоставлять определенные операции над ней. Он же исключительно отвечает за выделение/удаления необходимой для строки памяти. Класс же cName должен хранить имя как готовый объект класса MyString, при этом внутреннее устройство класса MyString ему совершенно не интересно.
2. Исходя из этого, реализовать в классе MyString:
- конструктор по умолчанию, который должен инициализировать пустую строку;
- конструктор из const char*;
- правильные конструктор копирования и оператор присваивания;
- оператор + для конкатенации строк;
- ну и, возможно, оператор преобразования в const char* для вывода строки функцией типа printf, или же еще лучше дружественный оператор << для вывода в поток.
При этом все выделение и освобождение памяти должен выполнять класс MyString.
3. А класс cName должен просто хранить имя в член-переменной класса MyString, ну и предоставлять какой-то необходимый доступ к ней. Необходимо реализовать:
- конструктор из набора параметров - const char*, как написано - фамилия, имя, отчество.... и т.д.
- возможно, какие-то еще функции....

Во.

Вернуться к обсуждению:
Вызов деструкторов членов класса C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2010, 12:32
Готовые ответы и решения:

Вызов метода класса из другого класса
Есть два класса &quot;нижнего уровня&quot; и один &quot;верхнего уровня&quot; Классы &quot;нижнего уровня&quot; имеют методы с...

Вызов членов и объектов с наследника класса
Есть базовый класс и два наследника: class CBase { public: int iNum; ...

Отладчик и вызов деструкторов
Всем привет. Как в отладчике посмотреть, были ли вызваны деструкторы локальных объектов функции?

Наследование - вызов конструкторов и деструкторов
Делаю два класса - предок и потомок: class class_1_type { private: int t; public: ...

10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2010, 12:32
Помогаю со студенческими работами здесь

Вызов конструкторов/деструкторов при наследовании
Объясните пожалуйста, как получается вывод на экран 2531 #include &lt;iostream&gt; class A {...

Непонятный вызов Деструкторов при создании списка
Непонятный вызов Деструкторов при создании списка. #include &lt;iostream&gt; #include &lt;list&gt;...

Вызов лишних конструкторов и деструкторов в std::vector
почему вызывает лишние конструкторы и вообще делает не то, что ожидаешь class S { public: int...

Создание и разрушение объектов класса, исследование вызовов конструкторов и деструкторов
Здравствуйте! Проверте пожалуйста код и подскажите мои ошибки. Согласно теме необходимо разобрать...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru