Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
AmKad
Member

Откуда:
Сообщений: 5297
PetroNotC Sharp
Как переключать студию на раннюю версию C++
А для чего?
31 май 21, 18:06    [22329480]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
Ну и про умные указатели.
Тенденция такая чтобы прогер нигде не писал new
)))
31 май 21, 18:06    [22329482]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
AmKad
PetroNotC Sharp
Как переключать студию на раннюю версию C++
А для чего?
ну вот я два дня угробил на поиск ошибки.
Справа Qt не работает. Слева студия и твой код рабочий.
Вот из за разницы в версии плюсов я и пошел не туда.
Лучше одинаково чтоб было.
Ну или переключать как в андроид студии
31 май 21, 18:09    [22329484]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
AmKad
Member

Откуда:
Сообщений: 5297
PetroNotC Sharp,

Посмотри где-то тут: project > Properties > C/C++ > Language > C++ Language Standard.
31 май 21, 18:14    [22329489]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
AmKad,
ОК завтра
31 май 21, 18:34    [22329496]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
Последних двух строк у меня нет в 15 студии.
ОК. Проехали.
Картинка с другого сайта.
1 июн 21, 09:46    [22329667]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
Короткий вопрос куда копать.
Нужна перегрузка метода класса по возврату.
Говорят в с++ не поддерживается.
Ну или такого типа
getPatamInt().toString()
Как делается такое или перегрузка?
2 июн 21, 16:04    [22330426]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
petrav
Member

Откуда:
Сообщений: 2944
И таким людям наше государство зарплату платит...
2 июн 21, 16:06    [22330429]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
petrav
И таким людям наше государство зарплату платит...
угу. У всех забрать излишки и пенсионерам раздать)
2 июн 21, 16:10    [22330433]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
Алло профи!
Сам вопрос не понятен или вы любите новичков в отдельном подфоруме держать?
2 июн 21, 18:32    [22330517]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

Ответ: в С++ такое не поддерживается. Можешь заново начинать клоунаду с его неприятием и
поиском костылей вместо правки консерватории.

Posted via ActualForum NNTP Server 1.5

2 июн 21, 18:39    [22330520]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
Dimitry Sibiryakov,

Цепочку методов нельзя создать?
obj.f().f2()
Ты профи?
2 июн 21, 18:47    [22330525]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

PetroNotC Sharp
Цепочку методов нельзя создать?

Создать можно практически всё что угодно. Назови конечную цель для которой тебе
понадобилась перегрузка по возвращаемому значению.

Для обычных целей обычно используют перегруженные операторы.

Posted via ActualForum NNTP Server 1.5

2 июн 21, 18:54    [22330530]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
Dimitry Sibiryakov,
Перегрузка это МЕТОД достижения цели.
Цепочка методов - это ВТОРОЙ МЕТОД.
Цель - не писать бойлерплейт код с моим классом tree выше.
https://ru.stackoverflow.com/questions/583342/Что-такое-boilerplate-code
У класса много полей разного типа.
Его второе назначение - вывод в эксель полей в строковом виде.
Т.е. Экспортер просто должен взять поле как строку.
Не верю что ты никогда не встречал такого при работе с бд)
2 июн 21, 19:19    [22330548]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

PetroNotC Sharp
Т.е. Экспортер просто должен взять поле как строку.

Для этого перегружают по типу параметра:
экспортер.взять(класс.поле);

Особые эстеты перегружают на стороне полей:
экспортер << класс.поле;


Ну а кривизну твоего дерева осуждают с самого начала топика.

Posted via ActualForum NNTP Server 1.5

2 июн 21, 19:28    [22330552]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
Dimitry Sibiryakov,
1. Нельзя. Ты нагрузил экспортера и его надо рефакторить и потом тестировать.
Экспортеров несколько. Все будем ломать под дерево.?
2. Не понял как на стороне полей? Опять экспортер?
3. Ты не отвлекайся на кривизну Постановки задачи)))
Дак как с цепочкой?
2 июн 21, 19:38    [22330558]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
Dimitry Sibiryakov,

Не бывает такого в плюсах? Не встречал?
MyObject.Start()
    .SpecifySomeParameter(asdasd)
    .SpecifySomeOtherParameter(asdasd)
    .Execute();
2 июн 21, 19:42    [22330561]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6658
PetroNotC Sharp,

class Chained {
   Chained& start(int param) { save(param); return *this; }
   Chained& next(int param) { save(param); return *this; }
   Result end() { return compute(...); }
};
auto result = Chained().start(1).next(2).end();
2 июн 21, 20:10    [22330571]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
Anatoly Moskovsky,
Круто. Ты волшебник.
Попробую.
2 июн 21, 20:12    [22330572]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

PetroNotC Sharp
Экспортеров несколько. Все будем ломать под дерево.?

А кто ещё кроме них знает как именно экспортировать те или иные типы?..

PetroNotC Sharp
2. Не понял как на стороне полей? Опять экспортер?

Кто кроме самих полей знает как преобразовать себя в нужный кому-то другому тип?..

PetroNotC Sharp
Дак как с цепочкой?

Старый дерьмовый дизайн ещё с эпохи плоского Си. Класса
strcpy(strchr(strcat(strcpy(a, b), c), 0), d);

Posted via ActualForum NNTP Server 1.5

2 июн 21, 22:19    [22330622]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
Dimitry Sibiryakov,
ОК. Ты предложил не мой класс дает в удобном формате а класс забиратель пусть сам преобразовывает.
Другие мысли есть или всё?
2. Я просто не понял твой метод 2. Разверни его.
3. Нет. Не получается у тебя. Смотри выше у кого в топике получается с кодом примерами на плюсах и даже 17тых
2 июн 21, 22:39    [22330631]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

PetroNotC Sharp
Ты предложил не мой класс дает в удобном формате а класс забиратель пусть сам преобразовывает.

Нет. Я сказал "преобразование должно происходить там, где есть знание как и во что надо
преобразовывать. Это вопрос дизайна, а не кодинга.

Posted via ActualForum NNTP Server 1.5

3 июн 21, 00:32    [22330657]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
Dimitry Sibiryakov,
Ну, можно и поспорить.
У класса есть поведение. А поведение его согласно ТЗ.
Это и есть "знание как и во что надо".
Насчет того, делать классы тупыми сервисами или умными еще Фаулер спорил.
И кстати, к золотой пули не пришли.
https://habr.com/ru/post/346016/
Анемичная модель

Сообщение было отредактировано: 3 июн 21, 06:59
3 июн 21, 07:07    [22330703]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
Начиная с Qt 5.4 вы также можете писать:
qDebug().nospace().noquote() << var1;
)
3 июн 21, 11:37    [22330811]     Ответить | Цитировать Сообщить модератору
 Re: Tree + полиморфный. Как кастовать в наследника?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
Нужно при работе с умными указателями обнулять переменную руками?
Напр
tree<shared ptr.... ptr;
for(...
ptr = map[key] ;
4 июн 21, 10:39    [22331223]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
Все форумы / C++ Ответить