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

Как создать копию объекта, зная его указатель?

22.10.2013, 16:49. Показов 3727. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, существует следующая проблема. В своей программе я рисую график используя класс QwtPolarPlot. По нажатию на график, должно открыться новое окно, в котором будет точно такой же график. Хорошим решением было бы либо передать в метод создания окна копию объекта QwtPolarPlot, но в этом классе не определен конструктор копии, поэтому так сделать нельзя. Можно ли как-то решить данную проблему?
Есть ещё один варинат, создать на новом окне объект QwtPolarPlot, получить список всех элементов находящихся на первом графике, и прикрепить к новому объекту, но список элементов получается как список указателей на эти объекты, поэтому прикрепляя их на новый объект, на старом они пропадают. Какждый элемент списка представляет из себя Qlist <QwtPolarItem*>, его объект тоже создать нельзя, т.к QwtPolarItem - абстрактный класс. Как решить эту проблему?)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.10.2013, 16:49
Ответы с готовыми решениями:

Создать копию объекта производного класса зная указатель на базовый
Добрый день! Вопрос в следующем... Возможно ли создать копию объекта производного класса зная указатель на базовый класс? У меня получился...

Как создать копию объекта на который указывает указатель
У меня есть указатель класс Student, который хранит информацию о студентах(имя, фамилию, телефон) в строках в стиле Си, то есть private...

Как создать копию объекта?
Как создать копию объекта а не еще одну ссылку на объект........?

6
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
22.10.2013, 16:53
ALeXUI_1, Если не определен конструктор копирования - копию создать соответственно нельзя. Можно создать новый объект, если есть подходящий конструктор.
Ну и судя по референсу: http://qwtpolar.sourceforge.ne... ource.html конструктор копии не запрещен, следовательно не вижу проблем создать копию.
0
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
22.10.2013, 16:53
QwtPolarPlot это что, виджет какой то?
0
0 / 0 / 0
Регистрация: 11.09.2013
Сообщений: 8
22.10.2013, 17:05  [ТС]
ForEveR, Я пытался передать в метод создающий новое окно, сразу копию объекта, а не указатель, но сразу сталкивался с ошибками.
Ошибки:
Кликните здесь для просмотра всего текста

c:\QtSDK\Desktop\Qt\4.8.0\mingw\include\ QtGui\qframe.h:-1: In copy constructor 'QwtPolarPlot::QwtPolarPlot(const QwtPolarPlot&)':

c:\QtSDK\Desktop\Qt\4.8.0\mingw\include\ QtGui\qframe.h:140: ошибка: 'QFrame::QFrame(const QFrame&)' is private

c:\qwtpolar-1.0.1\include\qwt_polar_plot.h:46: ошибка: within this context

C:\Users\Vladimir\Desktop\Kontrolnye_pyn kt 16.10.2013\KontrolOfQuality\debug\moc_cI frnsSNS.cpp:-1: In static member function 'static void cIfrnSns::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)':

C:\Users\Vladimir\Desktop\Kontrolnye_pyn kt 16.10.2013\KontrolOfQuality\debug\moc_cI frnsSNS.cpp:57: synthesized method 'QwtPolarPlot::QwtPolarPlot(const QwtPolarPlot&)' first required here

C:\Users\Vladimir\Desktop\Kontrolnye_pyn kt 16.10.2013\KontrolOfQuality\debug\moc_cI frnsSNS.cpp:57: error: initializing argument 1 of 'void cIfrnSns::SlotShowBigMishen(QwtPolarPlot )'


Raali, Да, для отрисовки графиков в полярных координатах
0
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
22.10.2013, 17:24
QObject has neither a copy constructor nor an assignment operator. This is by design. Actually, they are declared, but in a private section with the macro Q_DISABLE_COPY(). In fact, all Qt classes derived from QObject (direct or indirect) use this macro to declare their copy constructor and assignment operator to be private. The reasoning is found in the discussion on Identity vs Value on the Qt Object Model page.

The main consequence is that you should use pointers to QObject (or to your QObject subclass) where you might otherwise be tempted to use your QObject subclass as a value. For example, without a copy constructor, you can't use a subclass of QObject as the value to be stored in one of the container classes. You must store pointers.

вот что пишут, нужно использовать указатели на QObject, как я понимаю это родительский класс виджетов или еще выше
0
0 / 0 / 0
Регистрация: 11.09.2013
Сообщений: 8
22.10.2013, 17:28  [ТС]
Если добавлю просто указатель, то график пропадет на главном окне. Новое окно служит для увеличения графика. Это типа того, если вы в поисковике картинки ищите, видете маленький варинат, но нажав на картинку открывается большой.
0
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
22.10.2013, 17:35
можно увеличить график, потом передать его обратно в старое окно по закрытии
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2013, 17:35
Помогаю со студенческими работами здесь

Как создать копию объекта
Не могу найти ни в документации ни в других местах как можно создать копию (независимую) объекта, а как ссылку на объект метод...

Как создать копию объекта любого класса?
Set MyObj = AnyObj присваивает MyObj ссылку на объект AnyObj. Как скопировать объект целиком ? (класс содержит слишком много внутренних...

как создать копию объекта, на который ссылается итератор?
Есть шаблонная фукнция, в которую передается итератор с произвольным доступом (IT). Необходимо внутри функци создать копию элемента...

Как создать копию или клон объекта массива в Java?
Не получается склонировать массив. Подскажите, как правильно создать копию массива. Буду очень благодарен! Спасибо!

Как узнать адрес объекта, не зная его имени?
Есть две панели на форме. Как узнать адрес одной панели в памяти с помощью (Form1.Controls as TPanel)? var p:^TPanel; begin ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru