5 / 5 / 5
Регистрация: 16.12.2013
Сообщений: 463
1

Можно ли в конструкторе копирования поменять один параметр?

18.10.2015, 15:10. Показов 1149. Ответов 1
Метки нет (Все метки)

Здравствуйте. Мне нужно при создании объекта через конструктор копирования поменять один параметр в конструкторе. Такое можно реализовать?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2015, 15:10
Ответы с готовыми решениями:

Параметр в конструкторе копирования
Есть класс class CMatrix{ valarray<valarray<double> > matrix; public: CMatrix(const...

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

Указатель this в конструкторе копирования
Добрый всем вечер. Подскажите пожалуйста, как правильно применить в конструкторе копирования...

Ошибка в конструкторе копирования
Всем привет, не могу понять проблему, у меня есть структура: struct WindowRender : public...

1
Эксперт CЭксперт С++
5080 / 2265 / 332
Регистрация: 20.02.2013
Сообщений: 5,598
Записей в блоге: 19
18.10.2015, 16:32 2
Лучший ответ Сообщение было отмечено Вероника99 как решение

Решение

Вероника99, здравствуйте. Судя по Вашему вопросу, Вы не вполне верно понимаете сферу применения конструкторов и механизм их работы. Конструктор, с помощью которого создаётся объект - это специальная функция-член:
Цитата Сообщение от Стивен Прата
В момент создания и уничтожения объектов инициируются специальные методы класса, называемые
конструкторами и деструкторами.
Конструктор копирования нужен для копирования уже готового объекта в другой уже готовый объект:
Цитата Сообщение от Стивен Прата
Конструктор копирования вызывается всякий раз, когда создается новый объект,
и для его инициализации берется значение существующего объекта того же типа.
Конструктор копирования не предназначен для изменения других конструкторов. Более того, уже существующий конструктор нельзя никак изменить. Только если переписать его заново (изменить реализацию).

Добавлено через 5 минут
Цитата Сообщение от Вероника99 Посмотреть сообщение
поменять один параметр в конструкторе
Что значит "поменять" один параметр? Поменять значение? Поменять тип?

Добавлено через 25 минут
Если у Вас там имеет место быть наследование, то во время инициализации полей наследника может вызываться конструктор копирования.

Из той же книжки:
Цитата Сообщение от Стивен Прата
Теперь рассмотрим код для второго конструктора:
C++
1
2
3
4
RatedPlayer::RatedPlayer(unsigned int r, const TableTennisPlayer & tp) : TableTennisPlayer(tp) 
{ 
    rating = r; 
}
Информация TableTennisPlayer также передается конструктору TableTennisPlayer:
C++
1
TableTennisPlayer(tp)
Поскольку tp имеет тип const TableTennisPlayer &, при этом вызывается
конструктор копирования базового класса. Конструктор копирования в базовом классе не
определен, однако в главе 12 уже было сказано, что если конструктор копирования
необходим, но не был определен, компилятор генерирует его автоматически.
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2015, 16:32
Помогаю со студенческими работами здесь

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

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

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

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

Параметр this в конструкторе, методе
Рассмотрим на примере узла (Node) кольцевого двусвязного списка. Значения первого узла (Next, Prev)...

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


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

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

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