- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
class BasicData {
public:
virtual ~BasicData() = default;
virtual std::vector<std::byte> bytes() const = 0;
protected:
BasicData() = default; // <-- сабж
};
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
class BasicData {
public:
virtual ~BasicData() = default;
virtual std::vector<std::byte> bytes() const = 0;
protected:
BasicData() = default; // <-- сабж
};
Я не знаю зачем (строчка 8), но походу шоб всякие дядьки не дергали что им не можно. spoiler: Только вот так или иначе не дернут.
кк
я не знаю плюлюсов, это способ запретить вызывать коонструктор тем, кто не ребенок? куиии
какой багокогор
стоп.
ДЕСКЕТУРТОР вызвать можно, а КОСТРУКЬОР нельзя? Да еще и дескруктор виртуальный?
а бывает вротуальный косртукор?
какой бугор!
У чисто виртального класса и так конструктор не вызовешь (кроме как из классов-наследников).
а чем
BasicData() = default
отличается от того, чтоб вовсе ничего не писать?
я понимаю еще что делает по умолчаниб копирующй кструктор
а что делает кструктор без параметров?
bytes инициализуреть?
Можно сменить класификатор доступа (как с protected в данном случае) в данном случае и при том не утратить "trivially constructible".
это как жабомакаки делают конструктор private тчобы никто класс не создавал.
чт такое "trivially constructible"?
взомжожность создавать чото легко, без сайдэффектов и тяжелых операций?
Фактически, да. Но скорее разрешение для компилятора на более аггресивные оптимализации. Вот например нагуглилось: https://quuxplusone.github.io/blog/2018/07/03/trivially-constructible-from/
кууук
сколько же сущностей в этих плюсах
куу
Добрый вечер, коллега
Вы тоже пишите на "JavaScript"?
правильно
я тоже так делаю
С компилированными языками это работает хуже, именно потому я за скриптоваые язые
пошел нахуй
куикк-к
https://www.youtube.com/watch?v=pcMT7PlOQsE