Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
26 / 28 / 2
Регистрация: 04.08.2015
Сообщений: 605
1

Полное (побитовое) копирование объекта одной строчкой кода. не ссылки

18.11.2017, 23:35. Показов 1939. Ответов 3
Метки нет (Все метки)

Добрый день, подскажите пожалуйста, как быстро и безболезненно можно скопировать значения одного объекта в другой.
Я создал класс и чтобы скопировать абсолютно все значения экземпляра этого класса в другой экземпляр этого же класса я создал специально функцию в этом классе, где у этого класса перебираются все существующие значения и копируются в этот экземпляр.. Но дело в том что по мере наращивания этого класса приходится каждый раз дописывать новые значения в функцию копирования.. Эта функция становится довольно объемной.

Меня интересует как можно очень просто взять и полностью (одной строчкой кода) (побитово) скопировать данные одного экземпляра в другой, одного и того же класса. Копируемый экземпляр передается в функцию копирования по константной ссылке. Спасибо.

Добавлено через 1 час 6 минут
Можно с использованием sizeof(class_name)
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2017, 23:35
Ответы с готовыми решениями:

Как соединить элементы списка одной строчкой кода
Добрый день! Есть List<string> с несколькими элементами. Подскажите, как максимально коротким...

Одной строчкой кода получить список директорий с нулевым размером
Добрый день! Как одной строчкой кода (с помощью Linq) получить список директорий (включая...

Полное копирование объекта
Возможно ли клонировать экземпляр класса, который не реализует интерфейс System.IClonable (не...

полное копирование информации из одной таблицы в другую
Здраствуйте. Есть 2 таблицы с одинаковыми полями. копирование 1строки из первой таблицы во 2-ую...

3
3347 / 1925 / 368
Регистрация: 09.09.2017
Сообщений: 7,791
18.11.2017, 23:35 2
memcpy
Не забудьте что если внутри объекта есть указатели - они и будут скопированы как указатели, без выделения дополнительной памяти
1
494 / 208 / 70
Регистрация: 27.05.2016
Сообщений: 554
18.11.2017, 23:46 3
Цитата Сообщение от koker007 Посмотреть сообщение
где у этого класса перебираются все существующие значения и копируются в этот экземпляр
Как бы стандартные синтезируемые функции копирования (конструктор копирования и оператор присваивания) это делают сами.
0
26 / 28 / 2
Регистрация: 04.08.2015
Сообщений: 605
19.11.2017, 01:48  [ТС] 4
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
memcpy
Спасибо большое, вроде бы то что надо.

Добавлено через 2 часа 1 минуту
Цитата Сообщение от notAll Посмотреть сообщение
это делают сами
Да.. я так и сделал, но memcpy должна сильно упростить мне задачу. Пока не проверил, это работает или нет, но выглядит так.

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 data_client_comands {
private:
    struct main_data_client
    {
        string my_nick_name;
        GLfloat my_color_x = 0;
        GLfloat version_game = 0;
    };
    main_data_client main_data;
 
    //200 последних команд клиента
    one_client_comand comands_[200];
 
public:
    data_client_comands() {
    
    }
 
    data_client_comands(const data_client_comands& func_pointer_client_data) {
        memcpy(this, &func_pointer_client_data, sizeof(data_client_comands));
    }
 
};
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2017, 01:48

Копирование модуля из одной книги в другую с помощью кода
Зравствуйте. Скажите пожалуйста как скопировать модуль из одной книги в другую с помощью кода?

Не могу разобраться со строчкой кода
Вот фрагмент кода: for i=1:2 Fk(i)=eval(Funct(i,:)); Не могу разобраться, что обозначает символ...

Побитовое копирование double
Доброго времени суток! Преамбула: В целях интеграции Lua в движок C++ пытаюсь написать класс...

Побитовое копирование рисунка
Есть задание на курсач: Разработать программу, демонстрирующую влияние установленного ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.