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

Конструктор-копировщик - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ввод значений разделенных запятой http://www.cyberforum.ru/cpp-beginners/thread160438.html
Привет. Я тут делал упражнение.... Пользователь вводит координаты(разделенные пробелом) на которые нужно переместить точку, а по заданию координаты должны вводиться через запятую. Подскажите...
C++ Как проигрывать два (и более) wave звука одновременно Мне нужно проигрывать несколько звуковых файлов одновременно. Например, в одно и то же время включить два звука. Или включить звук, не выключая играющий в данный момент. http://www.cyberforum.ru/cpp-beginners/thread160415.html
C++ массив и случайные числа
как заполнить массив случайными числами от -20 до 20 C++
Почти готовое решение.Как создать очередь? C++
Добрый день.Подскажите,можно ли исправить готовый год?Что не так,объясните пожалуйста,если не затруднит.Задание делал в Dev-C++. Пытаюсь сохранить объекты в указателе(1 цикл while),а затем добавить...
C++ Присваивание значений одного класса другому. http://www.cyberforum.ru/cpp-beginners/thread160346.html
Скажите, могу ли я присвоить значения одного объекта класса другому объекту того же класса? class card { //код код код }; int main() { card c1, c2, c3; // заполняем класс c1
C++ Удаление/добавление записи по ключу в односвязном списке Возможно-ли удаление или добавление записи по ключу в односвязном списке? Если да, то не пойму, как "перемещаться по списку" не разрывая связь между записями... Если не трудно, покажите на... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
20.08.2010, 17:08
Crudelis, не надо смущаться. Память здесь выделяется не под массив, здесь для itsRadius выделяется память размером в один int, причем значение, которое хранится по адресу, выделенному оператором new, инициализируется конструктором. Т.е. запись
C++
1
itsRadius = new int(5);
аналогична записи
C++
1
2
itsRadius = new int;
*itsRadius = 5;
Другое дело, что:
  1. выделение динамической памяти в данном примере не нужно;
  2. автор забыл определить деструктор, который бы эту память удалял.
Reiji Cross, конструктор копирования можно было бы определить так:
C++
1
2
3
4
SimpleCircle::SimpleCircle(const SimpleCircle & rhs) // Ну и передаем по КОНСТАНТНОЙ ссылке
{
        itsRadius = new int(rhs.itsRadius);
}
PS. Семантика операторов инкремента здесь совсем не очевидна, и ИМХО лучше бы обойтись здесь без них (а в замен определить какие-нибудь более полезные методы, к примеру, вычисление площади и длины окружности)
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru