Size: a a a

2020 August 18

O

Ofee in C++ Together 2.0
Roy Mustang
Не важно, вопрос для меня актуальный. Я могу сделать две реализацию, одна через виртуальное наследование, а другая через дружественные функции
Используй дружественные функции, я тебе от этом говорил ещё раньше. Впрочем, у меня нет никакой уверенности, что ты понял меня или... себя правильно...
источник

RM

Roy Mustang in C++ Together 2.0
Ofee
Используй дружественные функции, я тебе от этом говорил ещё раньше. Впрочем, у меня нет никакой уверенности, что ты понял меня или... себя правильно...
Да не, я ту реализацию выбросил
источник

RM

Roy Mustang in C++ Together 2.0
Вопрос еще актуален, вопрос не о том, какая функциональная разница между friend и наследованием, а о том, какая из них производительней
источник

O

Ofee in C++ Together 2.0
Roy Mustang
Вопрос еще актуален, вопрос не о том, какая функциональная разница между friend и наследованием, а о том, какая из них производительней
Обе одинаково быстро не существуют.

Если нужно, я при любой из реализаций способен запилить одинаково неэффективный код.

Ты же понимаешь, что на этот вопрос возможно попытаться ответить только при наличии обеих реализаций?
источник

RM

Roy Mustang in C++ Together 2.0
Ofee
Обе одинаково быстро не существуют.

Если нужно, я при любой из реализаций способен запилить одинаково неэффективный код.

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

RM

Roy Mustang in C++ Together 2.0
А как проверить?
источник

O

Ofee in C++ Together 2.0
Ofee
Обе одинаково быстро не существуют.

Если нужно, я при любой из реализаций способен запилить одинаково неэффективный код.

Ты же понимаешь, что на этот вопрос возможно попытаться ответить только при наличии обеих реализаций?
Пойми уже если, выкинув zero-cost абстракцию, ты получаешь прирост производительности, ты использовал не ту абстракцию изначально
источник

RM

Roy Mustang in C++ Together 2.0
Ofee
Пойми уже если, выкинув zero-cost абстракцию, ты получаешь прирост производительности, ты использовал не ту абстракцию изначально
Независимо от типа наследования?
источник

RM

Roy Mustang in C++ Together 2.0
у меня выбор либо множественное наследование, либо friend
источник

RM

Roy Mustang in C++ Together 2.0
Щас покажу
источник

RM

Roy Mustang in C++ Together 2.0
Я обе реализовал
источник

RM

Roy Mustang in C++ Together 2.0
Почему то VS Code отображает protected поля при обращении из указателя, но юзать их нельзя говорит С++. Почему VS Code это делает? Они не должны отображаться так как недоступны из вне
источник

G

GNU/Плюшка in C++ Together 2.0
Надо было писать в vim
источник

RM

Roy Mustang in C++ Together 2.0
GNU/Плюшка
Надо было писать в vim
Смешно)
источник

RM

Roy Mustang in C++ Together 2.0
Короче
источник

RM

Roy Mustang in C++ Together 2.0
Я решил добавить макрос, который позволит выбирать между дружественным интерфейсом и обычным
источник

RM

Roy Mustang in C++ Together 2.0
Прикол в том, что дружественный интерфейс построен на частых использованиях friend и странном архитектурном подходе. Поэтому предоставлю выборку
источник

A

Alex Ф-ф-фэils!🌠︙... in C++ Together 2.0
Roy Mustang
А в чем разница между виртуальным унаследованием и дружественным классом?
Две разные вещи, одно для ромбовидного наследования, второе для декапсуляции
источник

RM

Roy Mustang in C++ Together 2.0
Alex Ф-ф-фэils!🌠︙
Две разные вещи, одно для ромбовидного наследования, второе для декапсуляции
Это понятно, вопрос то о другом, в плане производительности во что выливается код?
источник

RM

Roy Mustang in C++ Together 2.0
Я например без понятия как дружественная функция получает доступ к другим классам, если для наследований - это vtable, насколько мне известно
источник