0 / 0 / 4
Регистрация: 09.04.2016
Сообщений: 128

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

25.06.2018, 22:00. Показов 2913. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Такой вопрос, работает ли такой синтаксис, если я передаю указатель на объект, а не объект?

C++
1
2
3
4
имяКласса (const имяКласса & object)
{
    //код конструктора копирования
}
не лучше ли сделать так?:
C++
1
2
3
4
имяКласса (имяКласса * object)
{
    //код конструктора копирования
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.06.2018, 22:00
Ответы с готовыми решениями:

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

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

Не могу правильно сделать конструктор и конструктор копирования и принадлежность точки с заданными координатами треугольнику
#include "stdafx.h" #include <iostream> #include <conio.h> #include <windows.h> #include <math.h> #include <algorithm> using...

22
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
26.06.2018, 15:58
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от IlushaMax Посмотреть сообщение
Я могу вызвать Class(class1); и Class(class2); и получу одно и тоже?
Нет. Даже если Вы напишете два семантически полностью эквивалентных конструктора один из которых принимает ссылку, а другой - указатель на объект конструируемого класса, то они не будут эквивалентны в смысле функциональности. Это потому, что конструктор копии вызывается неявно как инструмент создания копии объекта в специальных случаях, таких как передача в функцию, возврат из функции, инициализация объекта объектом его же типа. То есть, пока Вы не разделите вопрос на два подвопроса:
1/ что такое конструктор копии
2/ зачем нужен конструктор копии и как он вызывается
Вам будет трудно.
Поэкспериментируете с функциями для начала, передавая в них объекты, ссылки и указатели. Снабдите конструктора и функции радостными приветствиями, позволяющими идентифицировать место их возникновения. Станет легче. Или не станет. Но тяжелее, - точно не станет, - попробуйте.
0
techpriest
 Аватар для Mirmik
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
26.06.2018, 16:06
Думаю, стоит изучить литературу по теме. Тема указателей не фигурирует в джава. Стоит немного академичнее подойти.

Добавлено через 1 минуту
Просто, по вашему желанию скормить конструктору неинициализированный указатель видно, что у вас есть некоторая каша в голове...
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
26.06.2018, 17:57
Цитата Сообщение от Mirmik Посмотреть сообщение
Просто, по вашему желанию скормить конструктору неинициализированный указатель видно, что у вас есть некоторая каша в голове...
Не увидел, где это было. Что касается java, то там действительно нет указателей. Дело усложняется тем, что там нет и значений для пользовательских типов. Это действительно нужно как-то пережить. В C++/CLI тоже похожая ситуация. Там есть только управляемые дескрипторы, которые носят в себе признаки и указателей и ссылок. Объекты встроенных типов могут быть упакованы... Когда после этого всего начинаешь знакомиться с сишным копированием, - первое время трудно. По себе знаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.06.2018, 17:57

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

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

Конструктор копирования
Выдераю кусок кода с программы надеюсь поймете кто будет смотреть: конструктор: myclass(const myclass &other) { this->size=...

Конструктор копирования
Почему экземпляры класса копируются без конструктора копий ? и к тому же получили разные адреса ? =====array2.h.cpp======= …….. ...

Конструктор копирования
Есть вопрос. Как объект одного класса передать в объект другого класса?


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

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

Новые блоги и статьи
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru