Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
2 / 2 / 0
Регистрация: 23.12.2014
Сообщений: 105

Создание копии объекта используя объявление через указатель

24.12.2014, 08:01. Показов 2668. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Имеется такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <cstring>
using namespace std;
 
class medicament
{
private:
    char* name;
    float weight;
    int price;
public:
    medicament()//конструктор по умолчанию
    {
        name = "";
        weight = 0;
        price = 0;
    }
    medicament(char* a, float b, int c)//конструктор с параметрами
        :weight(b), price(c)
    {
        name = new char[strlen(a) + 1];
        strcpy(name, a);
    }
    medicament(const medicament& a)
        :weight(a.weight), price(a.price)
    {
        name = new char[strlen(a.name) + 1];
        strcpy(name, a.name);
    }
    ~medicament()
    {
        weight = 0;
        price = 0;
        delete[] name;
    }
    void setname(char* a)
    {
        delete[] name;
        name = new char[strlen(a) + 1];
        strcpy(name, a);
    }
    void setweight(float a)
    {
        weight = a;
    }
    void setprice(int a)
    {
        price = a;
    }
    char* getname() const
    {
        return name;
    }
    float getweight() const
    {
        return weight;
    }
    int getprice() const
    {
        return price;
    }
};
 
int main()
{
    medicament a;
}
Как создать копию объекта а, используя объявление через указатель?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2014, 08:01
Ответы с готовыми решениями:

Создание копии объекта через сериализацию
Всем доброго времени суток! Реализую так: public static T CopyFromSerialize&lt;T&gt;(T SerializableObject) where T : new() { try ...

Создание объекта через указатель на базовый абстрактный класс
Есть абстрактный класс, от него наследуется 3 класса. В программе предусмотрено создание нового объекта(добавление клиента страховой...

Создание полной копии объекта с рефлексией
Не знаю, будет ли кому-то интересно, все описал тут: https://www.cyberforum.ru/blogs/188200/blog1518.html

2
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
24.12.2014, 08:20
Создать указатель на объект можно так:
C++
1
2
3
4
5
 medicament a;
a.getprice();
 medicament* pa;
pa=&a;
pa->getprice();
Но это будет не копия,
а указатель на тот же самый объект.

А копию можно так
C++
1
2
3
4
 medicament a;
a.getprice();
medicament* pa=new  medicament(a) ;
pa->getprice();
Кстати, конструктор по умолчанию:
C++
1
2
3
4
5
6
7
    medicament()//конструктор по умолчанию
    {
        name=new char[1];
        name[0] = 0; // строка из 0 символов
        weight = 0;
        price = 0;
    }
Цитата Сообщение от rny Посмотреть сообщение
~medicament()
{
weight = 0; price = 0;
delete[] name;
}
weight = 0; price = 0; - это лишнее, т.к. объект удаляется и никто на свете не сможет узнать,
что Вы записали туда нули!
1
2 / 2 / 0
Регистрация: 23.12.2014
Сообщений: 105
24.12.2014, 08:21  [ТС]
zss, Большое спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.12.2014, 08:21
Помогаю со студенческими работами здесь

Создание полной копии (deep copy) объекта
Всем привет, понадобилось в проекте создать полную копию объекта, для чего воспользовался двоичной сериализацией: public static...

Как обратиться к полям структуры через указатель и объявление указателя на структуру
Как обратиться к полям структуры через указатель и объявление указателя на структуру? #include &quot;stdAfx.h&quot; #include...

Объявление класса, создание объекта и вызов функции-члена
Всем добрый день! Вот так я объявляю класс. typedef map&lt;string, double&gt; datablock; typedef map&lt;string, string&gt; groupvars;...

Вызыв функции или объявление объекта через переменную
Возможно ли в JAVA какнибуть вызвать функцию или объявить объект через переменную, т.е String s = &quot;name&quot;; s obj = new s(); ...

Модификация объекта string через ссылку и указатель
Создайте две функции: первая должна получать аргумент типа string*, вторая - srting&amp;. Каждая функция должна изменять объект string своим...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru