Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rura
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 153
#1

Указатель this в конструкторе копирования - C++

23.05.2014, 23:33. Просмотров 377. Ответов 7
Метки нет (Все метки)

Добрый всем вечер.
Подскажите пожалуйста, как правильно применить в конструкторе копирования указатель 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
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
class CLASS
{
 
    struct NOTE
    {
        char Family[100];
        char Name[100];
        int Phone;
        int Birthday;
        int Birthmonth;
        int Birthyear;
    };
 
    NOTE* people;
    int number;
 
    void create();
 
 
public:
    CLASS()
    {}
 
    CLASS(int n)
    {
        number = n;
        people = new NOTE[number];
        create();
    }
 
    CLASS(const CLASS & list)
    {
        this->number = list.number;
        people = new NOTE[number];
        for (int i = 0; i < number; ++i)
        {
            strcpy_s(people[i].Family, list.people[i].Family);
            strcpy_s(people[i].Name, list.people[i].Name);
            people[i].Phone = list.people[i].Phone;
            people[i].Birthday = list.people[i].Birthday;
            people[i].Birthmonth = list.people[i].Birthmonth;
            people[i].Birthyear = list.people[i].Birthyear;
        }
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2014, 23:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатель this в конструкторе копирования (C++):

О конструкторе копирования - C++
Доброго времени суток всем присутствующим. Интересует маленький вопрос. В 15-й строке происходит прямое обращение к полю входного объекта...

Ошибка в конструкторе копирования C++ - C++
Помогите, пожалуйста создать конструктор копирования, который будет копировать элемент и добавлять его в список. У меня получился такой...

Параметр в конструкторе копирования - C++
Есть класс class CMatrix{ valarray&lt;valarray&lt;double&gt; &gt; matrix; public: CMatrix(const CMatrix &amp;M); ..... }; ...

Ошибка в конструкторе копирования - C++
Здравствуйте. Есть один класс для работы с многочленами, который хранит элементы многочлена в списке. Так вот, в конструкторе копирования...

Ошибка в конструкторе копирования класса - C++
Хотя и делал по образцу, но почему то лезет ошибка записи за пределы динамического массива, хотя и переменные копируются верно (отладчик...

Зачем нужна ссылка в конструкторе копирования - C++
Вопрос такой, Зачем нужна ссылка в конструкторе копирования? Почему не передавать напр. по указателю?

7
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,044
Записей в блоге: 17
23.05.2014, 23:52 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
this->number = list.number;
Почему не опустить его
C++
1
number = list.number;
1
rura
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 153
24.05.2014, 00:13  [ТС] #3
Я согласен с Вами.
Просто у меня задание, сделать его с этим указателем. А поскольку я первый раз его явно использую, я спрашиваю правильно ли.
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,044
Записей в блоге: 17
24.05.2014, 00:39 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Да правильно ( хотя в этом и нет необходимости)
1
rura
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 153
24.05.2014, 00:46  [ТС] #5
Благодарю.
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,044
Записей в блоге: 17
24.05.2014, 00:50 #6
Только в классе не наблюдаю деструктора во первых.
Во вторых CLASS - плохая идея писать названия классов в верхнем регистре.
0
rura
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 153
28.05.2014, 19:06  [ТС] #7
А что значить "в верхнем регистре."?
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
28.05.2014, 19:11 #8
Цитата Сообщение от rura Посмотреть сообщение
А что значить "в верхнем регистре."?
ВЕРХНИЙ нижний
0
28.05.2014, 19:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2014, 19:11
Привет! Вот еще темы с ответами:

Ссылка rvalue в конструкторе копирования и операторе присваивания - C++
Здравствуйте. Решил попробовать ссылки rvalue в классе. Привожу часть: \\BinaryArray.h class BinaryArray { protected: ...

Можно ли в конструкторе копирования поменять один параметр? - C++
Здравствуйте. Мне нужно при создании объекта через конструктор копирования поменять один параметр в конструкторе. Такое можно реализовать?

Указатель на this в конструкторе класса - C++
Добрый день! Есть некий синтетический пример: #include &lt;iostream&gt; #include &lt;memory&gt; class B; class A

Исправить ошибку в конструкторе копирования пользовательского класса Sort - C++
Здравствуйте. Такая вот проблема. Обычный конструктор работает без ошибок и подчеркиваний: Sort::Sort() { cout &lt;&lt; &quot;len = &quot;; ...


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

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

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