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

Задача из книги "C++ за 21 день" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Расчет вес в фунтах http://www.cyberforum.ru/cpp-beginners/thread647571.html
при пересчете вес в фунтах ответ выдает не правильно т.е по этой формуле result= funt*0.454; не правильно дает ответ например вводит 2 результат 908, а на самом деле должен быть так 0,908
C++ Подскажите, где ошибся Получаю следующий результат на нижеуказанный код: Enter two integers: 13 5 integer part of the quotient is 10 integer remainder is 3 Enter integer between 1 and 32767: 23456 2 3 4 5 64669632 Process returned 0 (0x0) execution time : 10.234 s Press any key to continue. http://www.cyberforum.ru/cpp-beginners/thread647562.html
C++ enum и массив
На сколько я знаю, при инициализации массива требуется, чтобы в квадратных скобках было указано константное число. А почему через enum можно указывать не константное? Взято из примера книги Праты. private: enum {COL_LEN=40}; char color ;
Зачем нужны разнообразные целые типы переменных? C++
1) Вот зачем нам нужен тип short если есть тип long? Как я понял из учебника, если моя переменная будет содержать не слишком большое целое число, то целесообразно использовать short, т.к. он 2 байта (long - 4 байта) и поэтому меньше памяти тратится и соответственно программа работает быстрее. Ну ладно, пусть так (если я, конечно, правильно всё понял). 2) Есть ещё слово unsigned, но тогда...
C++ Из полного пути к файлу выделить только имя файла http://www.cyberforum.ru/cpp-beginners/thread647542.html
Написать программу, которая по введённому полному пути к файлу выделяла бы только имя файла (то, что следует после последнего слеша или обратного слеша). Например, ввод: E:\video\100_Greatest_Discoveries\09_fizika.avi вывод: 09_fizika.avi Использовать класс std::string можно ли реализовать болие ли мение просто? чтобы было понятно :)
C++ Класс даты Определить ещё один класс Date, дата в котором хранилась бы в упакованном виде. Интерфейс этого класса должен ПОЛНОСТЬЮ СОВПАДАТЬ с интерфейсом класса из задания 1. При этом эти два класса не должны зависеть друг от друга. Проверкой на правильность решения является то, что при подключении модуля с этой реализацией класса Date в программу из задания 1 функцию main() не надо переписывать и... подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
06.09.2012, 15:21     Задача из книги "C++ за 21 день"
Aesonet, Память не очищается.
C++
1
CAT Boots = MakeCat(age);
Создаем копию из вернувшегося - уничтожаем вернувшееся. Все, у нас больше нету адреса, где была выделена память.

Можно исправить так.

C++
1
CAT& Boots = MakeCat(age);
И потом перед концом программы

C++
1
delete &Boots;
Но это тоже некорректно, т.к. когда мы удаляем объект - ссылка остается, в итоге ссылка ссылается на тот адрес, где был объект, то есть ссылка некорректная.

Проще всего и пожалуй логичнее, либо просто не делать указателей, т.е.
C++
1
2
3
4
CAT MakeCat(int age)
{
   return CAT(age);
}
или же возвращать указатель, а не ссылку
C++
1
2
3
4
5
CAT *MakeCat(int age)
{
CAT *pCat=new CAT(age);
return pCat;
}
 
Текущее время: 10:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru