Перейти к содержанию
    

Плавный переход C -> C++ под МК

On 7/15/2024 at 11:35 AM, EdgeAligned said:

Да, это такой упоротый синтаксис, называется

Обфускация :sarcastic:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 15.07.2024 в 12:04, dimka76 сказал:

Обфускация :sarcastic:

Вот вам смешно, а у меня весь проект в таком стиле написан. Который нужно быстро подхватить и дописать свою часть.

Я уже молчу, что пол-проекта автогенерится на ямлах.. Ну и естественно, молодые гении влепили 20 стандарт в полный рост. На меньшее они не согласны.

Иначе как умище-то показать.

В 15.07.2024 в 11:35, EdgeAligned сказал:

вон те скобочки [](){} означают запись лямбда-функции.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, MrYuran сказал:

Вот вам смешно, а у меня весь проект в таком стиле написан. Который нужно быстро подхватить и дописать свою часть.

Это ещё ничего. Хуже, когда подхватываемый проект написан в виде классической си-лапши с тоннами копипасты и глобальных переменных. Вот это да, вот это смешно:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 15.07.2024 в 15:36, AHTOXA сказал:

Это ещё ничего. Хуже, когда подхватываемый проект написан в виде классической си-лапши с тоннами копипасты и глобальных переменных. Вот это да, вот это смешно:)

Плавали в таком, знаем )

На прошлой работе досталась в наследство линейка приборов, разработанная за 20 лет тремя поколениями разработчиков.

Я, как последний оставшийся супер-стар, выдвинул предложения по комплексному рефакторингу, подкрепленные расчетом трудоемкости и описанием ближних и дальних выгод.

По результатам полного игнора со стороны руководства написал заявление в день рождения начальника ) (случайно совпало)

image.thumb.png.56d59f4948cf98c2c980266956316b14.png

Прошу прощения за злостный оффтоп, больше не буду.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Началось в колхозе утро..

undefined reference to `vtable for SomeClassName

В прошлый раз помогло virtual ~SomeClassName() = default;
Сейчас что-то другое. Были подозрения, что .cpp не собирается, но нет, объектник лежит на месте.

С какого конца можно это расколупать? 

#

что характерно, в .map есть vtable для базового абстрактного класса с адресом и упоминание для нужного производного класса, но уже без адреса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/29/2024 at 1:13 PM, MrYuran said:

Началось в колхозе утро..

https://stackoverflow.com/questions/3065154/undefined-reference-to-vtable

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/15/2024 at 1:06 PM, MrYuran said:

Вот вам смешно, а у меня весь проект в таком стиле написан. Который нужно быстро подхватить и дописать свою часть.

Я уже молчу, что пол-проекта автогенерится на ямлах.. Ну и естественно, молодые гении влепили 20 стандарт в полный рост. На меньшее они не согласны.

Иначе как умище-то показать.

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

это их учат профессора,  которые, в лучшем случае, один термометр осилили и до пенсии будут вспоминать, как было жарко. при этом про формы канделябров под потолком рассказывать будут долго и упорно. но при слове "прерывание" и "регистр" кричат нет нет только не это! (рассказ основан на реальных событиях,  вуз, увы, реальный и очень известный)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, MrYuran сказал:

virtual ~SomeClassName()

Когда виртуальный деструктор есть, но не реализован, такая проблема и будет появляться. То есть, виртуальный деструктор должен быть либо реализован здесь, либо переопределен в классе-наследнике. Если класса-наследника нет, то компилятор ищет реализацию деструктора в этом классе, но он - не реализован, только объявлен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Когда в виртуальном деструкторе (или вообще, виртуальном методе) пишите = default, это означает, что этот деструктор будет сгенерирован автоматически. То есть, равносильно тому, что если бы воообще его не писали.

Если деструктор или конструктор не написать в классе явно, то сгенерируется конструктор (деструктор) по-умолчанию. Этот default как раз и дает принудительно такую команду.

Виртуальный деструктор следует применять при наследовании классов, в которых производились операции с динамическим выделением памяти, дабы правильно освободить эту память.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здесь все объекты - статические во флеш-памяти, то есть деструктор не имеет физического смысла.

Тем не менее, убрал virtual, и одной ошибкой стало меньше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...