1 / 1 / 0
Регистрация: 14.01.2018
Сообщений: 102
1

Конструктор копирования

18.10.2018, 18:23. Показов 1698. Ответов 4

Почему при создании конструктора копирования обязательно передавать ссылку на объект?
C++
1
2
3
4
Triangle(const Triangle& tCopy){
        for(int i = 0; i<3; i++)
            corner[i] = tCopy.corner[i];
    }
Почему нельзя так?
C++
1
2
3
4
Triangle(Triangle tCopy){
        for(int i = 0; i<3; i++)
            corner[i] = tCopy.corner[i];
    }
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2018, 18:23
Ответы с готовыми решениями:

Не могу сделать чтобы класс содержал основной конструктор и конструктор копирования
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных...

Конструктор класса, конструктор копирования запускается не тот который нужен
Есть такой конструктор: Neuron::Neuron(int iType_activation_funk) { this-&gt;iType_act =...

Не могу правильно сделать конструктор и конструктор копирования и принадлежность точки с заданными координатами треугольнику
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; #include...

Конструктор инициализации, конструктор копирования, деструктор
Я сделал почти задание по перегрузке операторов. Осталось одно, тоесть три: конструктор...

4
"C with Classes"
1610 / 1383 / 518
Регистрация: 16.08.2014
Сообщений: 5,752
Записей в блоге: 1
18.10.2018, 18:35 2
Лучший ответ Сообщение было отмечено MrGluck как решение

Решение

stupid_man, потому что при втором варианте вызов конструктора копии запустит вызов конструктора копии и уйдет в бесконечную рекурсию. так как если параметр не ссылочный то при передаче по значению вызывается конструктор копирования.
по моему так
1
1 / 1 / 0
Регистрация: 14.01.2018
Сообщений: 102
18.10.2018, 18:54  [ТС] 3
Еще проблема. Ругается на массив corner
C++
1
2
3
4
5
6
7
#include "Triangles.h"
 
Triangles::Triangles() {
    for(int i = 0;i<3; i++)
            corner[i] = 60;//пишет  invalid types ‘int[int]’ for array subscript
 
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifndef TRIANGLES_H_
#define TRIANGLES_H_
 
class Triangles {
 
private:
    int corner[3];
 
public:
    Triangles();
};
 
#endif /* TRIANGLES_H_ */
0
"C with Classes"
1610 / 1383 / 518
Регистрация: 16.08.2014
Сообщений: 5,752
Записей в блоге: 1
18.10.2018, 19:15 4
Лучший ответ Сообщение было отмечено stupid_man как решение

Решение

stupid_man, попробуй так
C++
1
2
3
4
5
Triangles::Triangles() {
    for(std::size_t i = 0;i<3; i++)
            corner[i] = 60;//пишет  invalid types ‘int[int]’ for array subscript
 
}
Добавлено через 10 минут
вообще странная ошибка, не должно ее быть судя по коду.
1
1 / 1 / 0
Регистрация: 14.01.2018
Сообщений: 102
18.10.2018, 19:56  [ТС] 5
Цитата Сообщение от _stanislav Посмотреть сообщение
попробуй так
Благодарю, все заработало
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2018, 19:56
Помогаю со студенческими работами здесь

Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор
Всем доброго времени суток! нужна ваша помощь! нужно создать класс вектор и реализовать...

Конструктор копирования
Подскажите пожалуйста в моём случае конструктор копирования правильно реализован? class Massiv...

Конструктор копирования
Здравствуйте) объясните пожалуйста в чём проблема при описании в классе конструктора копирования...

конструктор копирования
Помогите вывести конструктор копирования #include &lt;iostream&gt; //библиотека C++, позволяющая...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru