|
0 / 0 / 1
Регистрация: 27.02.2011
Сообщений: 14
|
||||||||||||||||
Компилятор требует конструктор, принимающий аргументом экземпляр того же класса (не ссылку)30.09.2015, 20:20. Показов 1092. Ответов 12
Метки нет (Все метки)
Доброго времени суток.
Проблема такова: имеется ряд нижеприведённых классов (для простоты всё, что навскидку не касается данной проблемы, опущено, а проблемные методы упрощены, ибо проблема возникает только при возврате объекта, а создание происходит нормально -- проверял, изменяя возвращаемое значение на указатель и проверяя создание перед возвратом) Первый (создающий):
![]() Собственно вопрос: с чего вдруг компилятору мог потребоваться конструктор B такого вида? Ведь передача объекта (не ссылки) того же класса в конструктор -- это само по себе дикий бред. Имеют ли место проблемы в коде или же это какая-то особенность компилятора, например? Данные о системе: Linux RHEL6; компилятор g++ версии 4.4.7 20120313 Среда разработки -- Qt Creator Быть может, есть критические вещи, о которых следовало упомянуть, но которые для меня неочевидны в такой ситуации. Если потребуются уточнения по коду и системе -- с удовольствием дополню информацию Похожих тем на форуме не нашёл.Заранее спасибо.
0
|
||||||||||||||||
| 30.09.2015, 20:20 | |
|
Ответы с готовыми решениями:
12
Конструктор, принимающий в качестве аргумента ссылку на объект, всё портит Конструктор производного класса требует конструктор предка Конструктор родительского класса с аргументом |
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
| 30.09.2015, 20:31 | ||||||
|
http://rextester.com/JWTFL89862
1
|
||||||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||||||
| 30.09.2015, 20:32 | ||||||
|
Так попробуйте.
0
|
||||||
|
Комп_Оратор)
|
||||||
| 30.09.2015, 20:41 | ||||||
|
Vespertilio, запрет неявного преобразования не при чем. Может конструктора в закрытой секции? У меня всё работает:
0
|
||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||
| 30.09.2015, 20:49 | ||||||||||
|
обратите внимание: то ваш код перестанет работать: http://rextester.com/JDSOVU61290
конструктор копии не должен быть explicit
2
|
||||||||||
|
Комп_Оратор)
|
||
| 30.09.2015, 20:58 | ||
|
0
|
||
|
0 / 0 / 1
Регистрация: 27.02.2011
Сообщений: 14
|
||
| 01.10.2015, 16:36 [ТС] | ||
![]() На данный момент, кстати, ошибка ушла, когда из гита старую версию вытащил (ибо новую потерял, экспериментируя ). В чём проблема была -- по прежнему загадка, так как конструирование совпадало до строчки (с учётом конструкторов копирования). То есть, верно ли я понял, что чаще всего проблема в запрете неявного приведения типов? Тогда почему эта ошибка вылезает не всегда?
0
|
||
|
0 / 0 / 1
Регистрация: 27.02.2011
Сообщений: 14
|
|||||||
| 01.10.2015, 16:49 [ТС] | |||||||
0
|
|||||||
|
0 / 0 / 1
Регистрация: 27.02.2011
Сообщений: 14
|
|||||||
| 01.10.2015, 17:18 [ТС] | |||||||
0
|
|||||||
|
0 / 0 / 1
Регистрация: 27.02.2011
Сообщений: 14
|
||||||||||||||||
| 30.11.2015, 19:47 [ТС] | ||||||||||||||||
|
Разобрался с explicit/implicit. Быть может, кому-нибудь из вновь столкнувшихся с подобными трудностями будет полезно.
Explicit при копировании смысла не имеет, так как наличие этого ключевого слова означает, что конструктор должен быть вызван явно, чтобы создать экземпляр класса из заданного аргумента. Например, пусть есть два класса:
0
|
||||||||||||||||
| 30.11.2015, 19:47 | |
|
Помогаю со студенческими работами здесь
13
Сравнение класса наследника через конструктор с одним аргументом
Компилятор не хочет создавать экземпляр класса
Как передать в метод класса ссылку на экземпляр Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка SDL3 из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|