|
║XLR8║
|
||||||||||||||||||||||||||
STL std::set, std::pair, std::make_pair04.08.2010, 02:58. Показов 11440. Ответов 14
Я не знаю как описать тему в двух словах, поэтому не обращайте внимание на название темы.
Собственно перейдем к нашим баранам: есть пользовательский класс (условно дерево):
1> c:\program files\microsoft visual studio 9.0\vc\include\utility(87) : error C2678: binary '<' : no operator found which takes a left-hand operand of type 'const test::tree' (or there is no acceptable conversion) 1> e:\work\проект nautilus\test.hpp(38): could be 'bool test::tree::operator <(test::tree)' Перейдя по первой ссылку получаем следующий код из хедера utility:
По поводу второй строки: у меня классы расположены в пространстве имен "test" и оформлены в виде:
Вот только в чем проблема не понимаю а ошибки сами по себе не деваются.
0
|
||||||||||||||||||||||||||
| 04.08.2010, 02:58 | |
|
Ответы с готовыми решениями:
14
Стандартный поток и STL (std::copy to std::cout) Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri |
|
Maniac
|
|||||||||||
| 04.08.2010, 04:06 | |||||||||||
|
outoftime, Приведи полностью не рабочий пример кода.. ( здесь так не угадаешь.. )
ЗЫ.. Везде где можно используй ссылку на константу ( или как там по умному (не помню просто) ) Тооесть вместо этого
1
|
|||||||||||
|
║XLR8║
|
||||||
| 04.08.2010, 04:13 [ТС] | ||||||
|
Теперь выбивает вот такое:
error C2662: 'test::tree::getAge' : cannot convert 'this' pointer from 'const test::tree' to 'test::tree &' Код в полном обьеме.
0
|
||||||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
|
| 04.08.2010, 04:38 | |
|
1
|
|
|
║XLR8║
|
||||||
| 04.08.2010, 04:52 [ТС] | ||||||
|
ISergey, меня не волнует что будет в мэйне, моя задача - хэдер.
вот что поменял:
1>e:\work\проект nautilus\test.hpp(68) : error C2511: 'bool test::tree::operator ==(const test::tree &)' : overloaded member function not found in 'test::tree' 1> e:\work\проект nautilus\test.hpp(17) : see declaration of 'test::tree' Добавлено через 1 минуту Если не сложно подскажите хотя-бы куда рыть.
0
|
||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 04.08.2010, 13:09 | |
|
outoftime, в прототипе у вас функция константная. В определении нет.
Т.е. скорее всего так: bool tree::operator == (const tree &a) const И далее по списку.
1
|
|
|
║XLR8║
|
|||||||||||
| 05.08.2010, 00:47 [ТС] | |||||||||||
|
Значить подвожу краткий итог, что-бы не надо было читать все предыдущие посты кроме первого:
1. если переписать
error C2662: 'test::tree::getHeight' : cannot convert 'this' pointer from 'const test::tree' to 'test::tree &' 2. если переписать
error C2511: 'bool test::tree::operator ==(const test::tree &)' : overloaded member function not found in 'test::tree' Кто-то знает хотя-бы куда копать? Добавлено через 6 часов 48 минут У кого-то есть хотя-бы какие-то предположения в чем может быть ошибка, а главное варианты решения?
0
|
|||||||||||
|
|
|||||||||||
| 05.08.2010, 10:03 | |||||||||||
|
вот исправленный класс tree. ошибок море было. сейчас еще с оставшимся лесом разберусь.
да, кстати, у тебя есть две переменные статические в классе. они нигде не были определены. я присвоил им значение по 5.0. в коде найдешь - заменишь на свои.
вот переделанный лес. но честно. я бы на вашем месте переписал код еще раз, только медленно, вдумчиво, с чувством, с толком, с расстановкой. потому сейчас сложно предположить, что из этого выйдет.
1
|
|||||||||||
|
|
|||||||||||||||||||||||||||
| 05.08.2010, 13:04 | |||||||||||||||||||||||||||
|
если метод не будет изменять данные класса, определяйте его как const. если аргумент метода не будет изменяться в методе - определяйте его как const. теперь пройдемся по вашему коду. конструктор класса
на этом же месте, почему аргумент является объектом, а не ссылкой на объект? это лишнее копирование. раз аргумент у нас константный, то изменяться он не может, следовательно можно смело передавать строку по ссылке, а не по значению. в итоге применив все замечания мы получаем нормальный прототип конструктора:
ну и две неинициализированные статические переменные. кстати совершенно незачем инициализировать их в конструкторе. я забыл совсем про этот момент то есть заметил только сейчас. инициализируйте их вот так, только значения свои поставьте:
![]() в классе леса в принципе все те же самые косяки, за исключением одного метода. в методе getTreeList пришлось сделать const_cast. чтобы указатель все таки скопировался. не знаю зачем кстати этот метод. с указателями в С++ лучше не баловаться.
0
|
|||||||||||||||||||||||||||
|
║XLR8║
|
|||||||||||
| 05.08.2010, 15:25 [ТС] | |||||||||||
|
Мне пришлось присваивать константный идентификатор еще здесь:
e:\work\проект nautilus\new\test.hpp(150) : error C2679: binary '=' : no operator found which takes a right-hand operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no acceptable conversion) with [ _Traits=std::_Tset_traits<std::pair<test ::tree,std::pair<int,int>>,std::less<std ::pair<test::tree,std::pair<int,int>>>,s td::allocator<std::pair<test::tree,std:: pair<int,int>>>,false> ] c:\program files\microsoft visual studio 9.0\vc\include\xtree(498): could be 'std::_Tree<_Traits>::iterator &std::_Tree<_Traits>::iterator::opera tor =(const std::_Tree<_Traits>::iterator &)' with [ _Traits=std::_Tset_traits<std::pair<test ::tree,std::pair<int,int>>,std::less<std ::pair<test::tree,std::pair<int,int>>>,s td::allocator<std::pair<test::tree,std:: pair<int,int>>>,false> ] while trying to match the argument list '(std::_Tree<_Traits>::iterator, std::_Tree<_Traits>::const_iterator)' with [ _Traits=std::_Tset_traits<std::pair<test ::tree,std::pair<int,int>>,std::less<std ::pair<test::tree,std::pair<int,int>>>,s td::allocator<std::pair<test::tree,std:: pair<int,int>>>,false> ]
0
|
|||||||||||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
||||||
| 05.08.2010, 17:04 | ||||||
|
outoftime, я вот тут что подумал... а не проще в класс tree включить координаты, в которых дерево посажено, а то таскать вот такую
0
|
||||||
|
║XLR8║
|
||||||||||||||||
| 05.08.2010, 18:01 [ТС] | ||||||||||||||||
|
Это не совсем то что надо, так как деревья могут расти даже в пустыни, где нет лесов.
Добавлено через 22 минуты
Добавлено через 1 минуту К слову
Добавлено через 15 минут http://duramecho.com/ComputerI... Const.html - Вот нашел внятный рассказ о том, где и когда использовать идентификатор const.
0
|
||||||||||||||||
| 05.08.2010, 18:01 | |
|
Помогаю со студенческими работами здесь
15
Std::vector<std::pair<std::vector<int>::iterator, std::vector<int>::iterator> Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|