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

Проблема перегрузки и деструктора - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Серии в массиве. http://www.cyberforum.ru/cpp-beginners/thread353418.html
Здравствуйте!!! Подскажите, пожалуйста как решить следующую задачу. Тест серии последовательности. Под серией понимается последовательность одинаковых символов (нулей и единиц). То есть подсчитать сначала сколько единиц и нулей, далее сколько раз подряд два нуля и две единицы в массиве , далее сколько раз подряд три нуля и три единицы, далее сколько раз подряд четыря нуля и четыре единицы...
C++ Создать абстрактный тип данных (структура) - вектор, который имеет указатель на short и число элементов Создать абстрактный тип данных (структура) - вектор, который имеет указатель на short и число элементов. Определить функции: инициализации, удаления вектора, установки/ изменения размера, доступа к элементам вектора, вычисления суммы четных элементов вектора. Для примера, в функции main, организовать сравнение векторов. http://www.cyberforum.ru/cpp-beginners/thread353407.html
C++ Олимпийские игры
Задача. Напишите программу, которая подводит итоги Олимпийских игр. Про-грамма должна получить от пользователя число медалей разного достоинства, за-воеванное каждой командой – участницей, вычислить общее количество медалей и соответствующее ему число очков. Количество очков вычисляется по следую-щему правилу: за золотую медаль команда получает семь очков, за серебренную – шесть, за бронзовую –...
Как сделать счетчик в цикле? C++
как сделать счетчик в цыкле таким образом чтобы он был 1 1 1 2 2 2 3 3 3 4 4 4 итд
C++ Перевод 10-го числа в 2-ое http://www.cyberforum.ru/cpp-beginners/thread353380.html
Народ обьясните пжлста как работает эта функция(быстрое возведение числа в степень a^d mod n) : long powmod(long a, long d, long n) { long b = 1; while (d) { if (d % 2 == 0) {
C++ "Гистограмма успеваемости" Помогите пожалуйста написать программу на C++ или C# "гистограмма успеваемости" ...подскажите хотя бы откуда взять какой-нибудь вспомогательный материал. подробнее

Показать сообщение отдельно
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
18.09.2011, 20:17     Проблема перегрузки и деструктора
конструктор, которому на вход идет один аргумент - объект того же типа, переданный по ссылке
например,
C++
1
value_type(const value_type& instance)
его задача - создать копию переданного по ссылке объекта
если нет явной реализации, то он создается по умолчанию. В результате все поля объекта instance будут скопированы в поля объекта *this. В случае, когда в классе нет указателей, такой вариант нас устраивает.
Иначе надо вручную писать реализацию копирующего конструктора (например в случае списков, типичный пример)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class value_type
{
   int* ptr;
   unsigned int size;
public:
   value_type(unsigned int size) 
   {
      ptr = new int[size];
   }
   
   value_type(const value_type& instance) :
      size(instance.size)
   {   
      ptr = new int[size];
      for (unsigned int i = 0; i < size; ++i)
         ptr[i] = instance.ptr[i];
      
      /* если бы не реализовали явно конструктор копирования, то компилятор сгенерировал бы такой код
      size = instance.size;
      ptr = instance.ptr;
      явно не то, что нужно*/
   }
}
 
Текущее время: 12:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru