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

Оператор копирования для объектов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ C++ исправить ошибки http://www.cyberforum.ru/cpp-beginners/thread1150005.html
Помогите исправит ошибки=) #include <iostream> #include <stdio.h> #include <math.h> #include <conio.h> #include <time.h> using namespace std; int mas; int i,j,m,n,s,l,d;
C++ На входе строка любой длины, на выходе получить строку в обратном порядке дело было на собеседовании : задали такую задачу. На входе строка любой длины , на выходе получить строку в обратном порядке (ABC... ->...CBA ) я переволновался и написал такой код) и объяснить нечего не смог ((( как вы думаете это правильное решение? #include "stdafx.h" #include "iostream" #include "string.h" using namespace std; int _tmain(int argc, _TCHAR* argv) { http://www.cyberforum.ru/cpp-beginners/thread1150000.html
Задача коммивояжера - выход за пределы массива C++
Бьет ошибку! Я так понимаю где-то выход за пределы массива! Народ гляньте кто, а то я уже ничего не вижу! Может свежий взгляд увидит как исправить #include <vcl.h> #include <tchar.h> #include <stdio.h> #include <conio.h> //
C++ Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу
Здравствуйте, помогите сделать задание, ни как не могу в него вникнуть: Компоненты файла f – целые (отличные от нуля) числа: х, y1, ... yn. Вывести на экран два последовательных члена этой последовательности, среднее арифметическое которых ближе всего к х. Выполнить задания для текстового и бинарного файлов.
C++ Заполнить двумерный массив 7x7 http://www.cyberforum.ru/cpp-beginners/thread1149931.html
Заполнить двумерный массив 7x7 следующим видом: Добавлено через 15 минут Спасибо, уже сделал, кому нужно, вот) //---------------------------------TwIx----------------------------------------- #include <iostream> #include <math.h> #include <stdlib.h> #include <vcl.h>
C++ Написать простую булевую функцию написать реализацию самой простой функции вычисления нелинейности одной булевой функции. Для отладки этой функции надо будет писать программу, в которой задавать какую-нибудь конкретную функцию, например, линейную или произведение переменных, а также выводить результат в файл для проверки. подробнее

Показать сообщение отдельно
DrOffset
6785 / 3996 / 917
Регистрация: 30.01.2014
Сообщений: 6,816
17.04.2014, 18:35     Оператор копирования для объектов
Цитата Сообщение от higimo Посмотреть сообщение
а оператор присваивания как реализовать? Автоматически код из оператора копирования не вытекает, а если подставить его в оператор присваивания тесты провалятся.
Реализация копирования и присваивания не может быть идентичной в данном случае.
При копировании мы объект создаем, т.е. его до этого не существовало и мы задаем его начальное состояние идентичным аргументу. При присваивании объект уже существует - у него есть состояние. Можно сделать следующее и получить небольшой выигрыш в быстродействии:
1) Если размер выделенной памяти целевого объекта больше, либо равен размеру выделенной памяти присваиваемого, то можно не перераспределять память а просто скопировать в уже существующую присваиваемые элементы.
2) Если размер меньше, то делаем честное освобождение, затем распределение нужного количества. Потом копирование.
3) Для удобства, данная схема потребует ввести два размера. Один размер отражает общий размер выделенной памяти. Другой фактическое количество элементов в массиве.
 
Текущее время: 15:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru