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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Ввод значений разделенных запятой http://www.cyberforum.ru/cpp-beginners/thread160438.html
Привет. Я тут делал упражнение.... Пользователь вводит координаты(разделенные пробелом) на которые нужно переместить точку, а по заданию координаты должны вводиться через запятую. Подскажите пожалуйста как это сделать. Спасибо. #include <iostream> #include <math.h> #include <clocale> #include <stdlib.h>
C++ Как проигрывать два (и более) wave звука одновременно Мне нужно проигрывать несколько звуковых файлов одновременно. Например, в одно и то же время включить два звука. Или включить звук, не выключая играющий в данный момент. http://www.cyberforum.ru/cpp-beginners/thread160415.html
C++ массив и случайные числа
как заполнить массив случайными числами от -20 до 20 C++
C++ Присваивание значений одного класса другому.
Скажите, могу ли я присвоить значения одного объекта класса другому объекту того же класса? class card { //код код код }; int main() { card c1, c2, c3; // заполняем класс c1
C++ удаление/добавление записи по ключу в односвязном списке http://www.cyberforum.ru/cpp-beginners/thread160327.html
Возможно-ли удаление или добавление записи по ключу в односвязном списке? Если да, то не пойму, как "перемещаться по списку" не разрывая связь между записями... Если не трудно, покажите на примерчике функции удаления или записи
C++ Литература по Visual C++ Доброго времени суток. 1. Подскажите пожалуйста хорошую книжку по Visual C++ класса - "от А до Я" среда VS. что бы в ней было описание всех формочек, кнопочек до сети и графики и тд. 2. Книжка по API винды от xp до 7. 3. Всем спасибо :). подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
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. Семантика операторов инкремента здесь совсем не очевидна, и ИМХО лучше бы обойтись здесь без них (а в замен определить какие-нибудь более полезные методы, к примеру, вычисление площади и длины окружности)
 
Текущее время: 22:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru