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

Как работает конструктор копирования? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти 10 первых натуральных чисел, оканчивающихся на цифру 7 кратных числу 9, не меньших 100 (Pascal -> C++) http://www.cyberforum.ru/cpp-beginners/thread1213553.html
Найти 10 первых натуральных чисел, оканчивающихся на цифру 7 кратных числу 9 и находящихся в интервале левая граница которого равна 100 var i, v : integer; begin v:=99; for i := 1 to 10 do begin while true do begin Inc(v); if ((v - 7) mod 10 = 0) And (v mod 9 = 0) then begin writeln(v); break;
C++ Повторный ввод данных после ошибки как после слов "ошибка!!!..." вернуться для повторного ввода оценки ученику?#include <iostream> #include <fstream> #include <string> using namespace std; int k, i, r; char u; string line; int main() { setlocale (0,"rus"); http://www.cyberforum.ru/cpp-beginners/thread1213538.html
Количество трёхзначных чисел, все цифры которых разные C++
Есть задача Составить прорамму , которая считает количество натуральных чисел ,в которых все 3 цифры разные. Вот , что я написал int col = 0; for (int i = 100 ; i < 1000; i++) if (((i/100) != ((i%100)/10)) && ((i/100) != (i%10) && (i%10)!= ((i%100)/10))) col++; cout << col; Но меня смущает конечный результат. Каков должен быть ответ ? И если можно другие варианты решения задачи .
Поток с бесконечным циклом C++
Добрый вечер всем. Пишу простенькую игру, появилась необходмость в дополнительном потоке. Как не крутил поставленную задачу над игрой, прихожу к одному - бесконечный цикл в точке входа(функции) в поток. Где-то читал,что нежелательно делать бесконечные циклы в функции потока,и лучше всего сделать так,чтобы она завершалась самостоятельно...но что делать, что если по другому задачу не реализовать?...
C++ По заданному году получить по порядку все числа, на которые в каждом месяце попадает последняя пятница http://www.cyberforum.ru/cpp-beginners/thread1213468.html
Задали задание, нужна помощь. Заранее благодарю. Написать программу в C++. Задание: В библиотеке каждая последняя пятница каждого месяца- санитарный день. Составить прогу , которая позволяла бы получить по порядку все числа, на которые в январе, феврале...декабре n-ного года приходится сан.день. Значение года-n, которое может вводить пользователь, ограничено диапозоном с 1970 по 2037.
C++ Записать целое число буквами (можно ли упростить код?) Здравствуйте помогите упростить код. Условие: Напишите программу которая вводит целое число, не превышающее 100, и выводит его прописью, например, 21→"двадцать один". Мой код #include <iostream> using namespace std; int main () { int a,b,c ; подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6172 / 2901 / 284
Регистрация: 04.12.2011
Сообщений: 7,715
Записей в блоге: 3
21.06.2014, 02:52     Как работает конструктор копирования?
По всей видимости в конструкторе по умолчанию предусмотрена инициализация поля Char *type ;//имя неудачное)
нулём. По сему первая строка в операторе if проверяет, что передан объект не созданный по умолчанию или во в сяком случае type указывает на память. Потом выделяется память соответствующая размеру строки в указателе type оригинала и по-молодецки (не проверяя выделилась ли память) в неё копируется из него строка. В случае если type оригинала равен нулю (никуда не указывает) он устанавливается в ноль и в создаваемом объекте. Потом копируются значения полей памяти и объёма харддиска. А вот кусочек type = E.type; это как серпом по я- чейкам памяти. То есть изначально предполагалось создание глубокой копии, а потом вдруг указатель установлен на указатель в оригинале. Конструктор копии трудится при передаче экземпляра в функцию по значению и при возврате, например. Если функция принимает и возвращает этот экземпляр, то уже из неё вернуться не светит. Будет пытаться освободить память 2-жды. Да ещё и принадлежащую по совместительству другому объекту. Это если деструктор написан логично.
Вкратце: удалите type = E.type; и уже будет работоспособно.
 
Текущее время: 08:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru