|
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
|
||||||||||||
Непонятна тема (Классы содержащие другие классы, как данные члены )18.01.2012, 00:08. Показов 4662. Ответов 17
Метки нет (Все метки)
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент)
Программа сама по себе не компилируется(выдает следующую ошибку E2015 Ambiguity between 'Point' and '_fastcall Classes::Point(int,int)'следовательно код изменить не могу(чтобы найти ответы на вопросы) и найти ошибку тоже Не совсем понятно как работает программа(точнее совсем непонятно) непонятно по какому принципу работают строчки кода 18-37 и 76 Добавлено через 17 минут после редактирования сообщения,строчки кода непонятны начиная с 26-77.и 116.не понятно как вызывается GetUpperLeft если не вызывалась SetUpperLeft
0
|
||||||||||||
| 18.01.2012, 00:08 | |
|
Ответы с готовыми решениями:
17
Классы, содержащие данные других классов Классы, включающие другие классы |
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|
| 18.01.2012, 00:11 | |
|
похоже компилишь в MSVS? если да, то версия?
0
|
|
|
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
|
|
| 18.01.2012, 00:13 [ТС] | |
|
компилятор borland builder 6
0
|
|
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|
| 18.01.2012, 00:22 | |
|
не знаю почему такая ошибка, у меня компилится на разных компиляторах (кроме борланда - не имею)
0
|
|
|
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
|
|
| 18.01.2012, 00:25 [ТС] | |
|
могли бы вы объяснить как работает данная программа,в книге невнятное объяснение дано,хотя до этого автор все поясняет подробно,что никаких вопросов не возникает
0
|
|
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|||||||||||
| 18.01.2012, 01:04 | |||||||||||
|
функции Get**** - предназначены для получения координат углов прямоугольника
например, GetUpperLeft - верхнего левого соответственно Set****** - для установки(изменения) текущих координат в строке 116 GetUpperLeft вызывается без SetUpperLeft, т.к. координаты были уже заданы при создании переменной тут:
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
|
|
| 18.01.2012, 01:19 [ТС] | |
|
Уточню как раз непонятно как GetUpperLeft возращает значение itsUpperLeft,если нигде этому параметру значение не присваивалось,да в конструктор поступают четыре параметра,но они присываются параметрам itsTop и т.д в строчке itsUpperLeft.SetX(left) передается параметр left,потом его можно вызвать itsUpperLeft.GetX..
0
|
|
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
||||||
| 18.01.2012, 01:22 | ||||||
|
вот здесь и присваивалось:
1
|
||||||
|
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
|
|
| 18.01.2012, 01:35 [ТС] | |
|
к сожалению я понимаю выше указанное как строчки с 3-6 присвоение..тут вопросов нет..а строчки с 7-14 передача параметров соответственно в функции SetX и SetY,и то что я потом могу отобразить их с помощью GetX и GetY..но так и не понимаю где присвоение параметру UpperLeft
0
|
|
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|||||||||||
| 18.01.2012, 01:43 | |||||||||||
|
itsUpperLeft имеет тип Point. и вызововы
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
|
|
| 18.01.2012, 09:54 [ТС] | |
|
я понял что в данном примере это равносильно вызову(к сожалению написать подобную программу не смогу,по причине того ,что смысл так и не понятен где здесь параметру itsUpperLeft.SetX(left) присваивается значение точки...я понимаю(к сожалению повторюсь) посредством параметра itsUpperLeft типа Point передаю в функцию SetX(значение left) вызову допустим itsUpperLeft.GetX() получу отображение параметра...думал что возможно строчку void SetUpperLeft(Point Location) надо понимать так вместо параметра Location типа point передается значение setX(left) ...но здесь передается сразу два параметра SetX и SetY,получается что параметр Location передает сразу два параметра?
0
|
|
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|||||||
| 18.01.2012, 10:19 | |||||||
1
|
|||||||
|
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
|
|
| 18.01.2012, 12:15 [ТС] | |
|
тоесть я верно предположил,что если бы я передавал параметры через функцию void SetUpperLeft(Point Location) переменная Location типа Point передает сразу два значения или все таки передает значение одно(которое определяется двумя координатами)?
0
|
|
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|
| 18.01.2012, 13:20 | |
|
здесь нужно понять, что объект типа Point представляет собой одно (цельное) значение (точка, координата на плоскости), которое реализовано с помощью двух обьектов типа int.
и передавая в ф-ю обьект типа Point, вы технически передаете два обьекта типа int как одно логически целое
0
|
|
|
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
|
||||||
| 18.01.2012, 23:34 [ТС] | ||||||
0
|
||||||
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
||
| 18.01.2012, 23:52 | ||
|
но код работать должен и выведет то что хранится в а
0
|
||
|
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
|
|
| 19.01.2012, 00:46 [ТС] | |
|
Retmas,спасибо тебе за помощь,наконец-то разобрался в этой теме,будем изучать c++ дальше
0
|
|
|
2 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 8
|
|
| 25.02.2013, 14:09 | |
|
Извиняюсь, что поднимаю прошлогоднюю тему, но сейчас изучаю именно эту главу и тоже возникли проблемы. С самим кодом вроде как разобрался, но в в шестом билдере все равно не получается его скомпилить. Выдает ошибку в main() "undefined symbol MyRectangle". Хотя вроде как класс Rectangle объявлен, но когда создаешь объект MyRectangle этого класса и потом пытаешься использовать какую-нибудь его функцию-член написав в листе "MyRectangle." (на что билдер должен предложить функции, которые можно использовать), вместо этого он выдает ошибку "unable to invoke code completion due to errors in source code".
Может кто помочь?
0
|
|
| 25.02.2013, 14:09 | |
|
Помогаю со студенческими работами здесь
18
Intellij - как создать темплейт класса и чтоб его имя добавлялось в другие классы
Классы (статические члены и конструктор копирования) тема классы Тема: Классы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью 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 секунды (а то и больше),. . .
|