Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа Renesas - High-Perfomance Embedded Workshop http://www.cyberforum.ru/cpp/thread186038.html
Пожалуйста поделитесь знаниями! Расскажите о Renesas - HEW; знаю что в ней можно написать прогу на С, а каковы еще ее возможности?
C++ Поиск исходников алгоритма шифрования DES Друзья, подскажите где найти исходники алгоритма шифрования DES, желательно на Visual C++ без использования WinAPI, но если есть просто C++ или С, то тоже сгодится. Советы по использованию поисковых систем прошу не давать. http://www.cyberforum.ru/cpp/thread185941.html
C++ Реализация событий в С++
Мне нужно реализовать события, как в Дельфи или С++ Builder, на Visual C++. Но стандартный С++ не поддерживает указатели на функции-члены класса. В своём блоге за 02.11.10, я попытался расписать, как это можно было бы реализовать, но получилось уж слишком громоздко... А как сделать проще?
Нужен учебник по стандартным функциям/классам C++
Нужен учебник по стандартным функциям/классам C и C++, Борланд С++ буилдер, etc на русском. Во-первых не дублируйте темы. Во-вторых разберитесь как-нибудь с транслитом. И кстати почитайте правила форума, в частности пункт 3.10
C++ Ввод зарезервированных символов ASCII http://www.cyberforum.ru/cpp/thread184481.html
Здраствуйте! Есть консольная программа(си++,ос хр)... как в консоли ввести "крякодзябы"? мне нужно ввести в консоль символы которые за таблицей ascii кодов имеют коды(dec): 181,192,202...ето символы для графики...зарезервированые... (!) мне нада ето ввести в консоли.. как нажать ети символы? я тут уже полчаса жму на клаве комбинации клавиш и никак не могу......
C++ MPI, нахождение простых чисел Здравсвуйте! Пишу программу для нахождения простых чисел. Пишу в Visual Studio 2008 на C++. Программу написал и она работает на нескольких ПК. Но проблема в том, что результаты в главный процесс возвращаются неправильно. Допустим запускаем: компьютер с главным процессом: 5 процессов компьютер раб: 5 процессов. В результате в главный файл запишутся результаты от первых 5 и только от... подробнее

Показать сообщение отдельно
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,352
08.11.2010, 12:32     Вызов деструкторов членов класса
Гм. Я бы выразился в том смысле, что приведенный код не просто плохой - он очень плохой. Надеюсь, коллега Alexanches найдет время его поправить. Проблемы, которые я вижу с ходу:
1. Совершенно непонятно, какой из классов владеет памятью, выделяемой под строку. Выделяется память в одном классе, удаляется в совершенно другом.....
2. В конструкторе класса cName переменной fio присваивается адрес временного объекта; и куда будет указывать эта переменная после завершения тела конструктора - даже Б.Г. не знает....

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

Во.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru