Size: a a a

2021 March 02

А

Андрей in supapro.cxx
Stepan
Хотя reinterpret_с можно много где увидеть
А где ты его используешь?
источник

S

Stepan in supapro.cxx
Андрей
А где ты его используешь?
Видел в исходных кодах реверс-инженеров
источник

А

Андрей in supapro.cxx
Stepan
Видел в исходных кодах реверс-инженеров
Его используют только очень редко и то когда понимают на 1000% что делают
источник

S

Stepan in supapro.cxx
Да, об уверенности при использовании не спорю
источник

S

Stepan in supapro.cxx
Степень использования зависит от области применения, конечно же
источник

ПК

Побитый Кирпич... in supapro.cxx
Denis Paukaev
не, я конечно знаю любителей

constexpr auto i = int{5};

но мне не нравится
По твоей логике как раз будет
constexpr auto i = static_cast<int>(5);

Так гораздо лучше, да😁
источник

DP

Denis Paukaev in supapro.cxx
Побитый Кирпич
По твоей логике как раз будет
constexpr auto i = static_cast<int>(5);

Так гораздо лучше, да😁
по моей будет Int i{5};
источник

A

Albyc in supapro.cxx
День добрый! У меня тупняк: есть класс с абстрактными методами A. Есть ещё один класс B, который делает имплементацию первого класса для конкретной задачи, т.е. наследованный дочерний класс получается. Мне нужно написать класс C, который просто берёт уже имплементированные методы из класса B, но чтобы пару методов можно было переделать.

Вот некоторая имплементация вопроса: https://godbolt.org/z/7dqEsP

Банальная вроде вещь, но не понимаю, как это синтаксически выглядит
источник

ID

In Dev in supapro.cxx
Albyc
День добрый! У меня тупняк: есть класс с абстрактными методами A. Есть ещё один класс B, который делает имплементацию первого класса для конкретной задачи, т.е. наследованный дочерний класс получается. Мне нужно написать класс C, который просто берёт уже имплементированные методы из класса B, но чтобы пару методов можно было переделать.

Вот некоторая имплементация вопроса: https://godbolt.org/z/7dqEsP

Банальная вроде вещь, но не понимаю, как это синтаксически выглядит
Когда делаете override в B оставляете virtual и в C переопределяете метод
источник

ПК

Побитый Кирпич... in supapro.cxx
Albyc
День добрый! У меня тупняк: есть класс с абстрактными методами A. Есть ещё один класс B, который делает имплементацию первого класса для конкретной задачи, т.е. наследованный дочерний класс получается. Мне нужно написать класс C, который просто берёт уже имплементированные методы из класса B, но чтобы пару методов можно было переделать.

Вот некоторая имплементация вопроса: https://godbolt.org/z/7dqEsP

Банальная вроде вещь, но не понимаю, как это синтаксически выглядит
Берешь и переопределяешь методы с помощью override
источник

A

Albyc in supapro.cxx
In Dev
Когда делаете override в B оставляете virtual и в C переопределяете метод
Кажется, я вас не особо понял - https://godbolt.org/z/Pjv41z
По-прежнему метод C::reset() ничего не делает
источник

ID

In Dev in supapro.cxx
Так вы хоть определите его что ли...
источник

JJ

Joshua Jakowlew in supapro.cxx
Привет. Хочу, чтобы  kek(Cat{}) не компилился, а компилились только классы, имеющие метод bar c сигнатурой void(int). Как мне это сделать?

https://pastebin.com/Fb9Jw21M
источник

A

Albyc in supapro.cxx
In Dev
Так вы хоть определите его что ли...
Я хочу взять тело этого метода из B. Зачем мне его определять? Сорри, под вечер могу не понимать очевидные вещи
источник

ID

In Dev in supapro.cxx
Albyc
Я хочу взять тело этого метода из B. Зачем мне его определять? Сорри, под вечер могу не понимать очевидные вещи
Если вы хотите взять тело из B, зачем вообще его переопределять через override?
Просто уберите из C в таком случае reset, будет использоваться из базового класса
источник

ID

In Dev in supapro.cxx
Albyc
Я хочу взять тело этого метода из B. Зачем мне его определять? Сорри, под вечер могу не понимать очевидные вещи
А еще у вас member shadowing для i.
B::reset() сбросит значение B::i, C::print_value() выводит значение для C::i.
Это два разных поля, одно из них в базовом классе, второе - в производном. Когда в производном классе объявлено поле или метод с таким же именем, что и в базовом, поле в базовом "скрывается". При этом методы базового класса продолжают работать с тем полем, что находится в базовом.
Такие дела
источник

A

Albyc in supapro.cxx
In Dev
А еще у вас member shadowing для i.
B::reset() сбросит значение B::i, C::print_value() выводит значение для C::i.
Это два разных поля, одно из них в базовом классе, второе - в производном. Когда в производном классе объявлено поле или метод с таким же именем, что и в базовом, поле в базовом "скрывается". При этом методы базового класса продолжают работать с тем полем, что находится в базовом.
Такие дела
Да, мой косяк. Но основную фишку понял (вспомнил). Спасибо!
источник

ПК

Побитый Кирпич... in supapro.cxx
Joshua Jakowlew
Привет. Хочу, чтобы  kek(Cat{}) не компилился, а компилились только классы, имеющие метод bar c сигнатурой void(int). Как мне это сделать?

https://pastebin.com/Fb9Jw21M
Достать из метода сигнатуру и проверить её
источник

JJ

Joshua Jakowlew in supapro.cxx
А как мне это сделать, можно пример?
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Joshua Jakowlew
Привет. Хочу, чтобы  kek(Cat{}) не компилился, а компилились только классы, имеющие метод bar c сигнатурой void(int). Как мне это сделать?

https://pastebin.com/Fb9Jw21M
Можно исходную задачу?
источник