Size: a a a

2021 February 16

D

Danya in supapro.cxx
Нужно dynamic_cast
источник

DP

Denis Paukaev in supapro.cxx
можно но не нужно так делать
источник

I

Ioann_V in supapro.cxx
У меня вопрос такой - о чем такое мое желание говорит. О том, что нужно наследование, а не композиция?
источник

I

Ioann_V in supapro.cxx
Denis Paukaev
можно но не нужно так делать
ДА как же не нужно, мне как раз нужно. Пример тут реальный.
источник

DP

Denis Paukaev in supapro.cxx
о кривоватом дизайне
источник

DP

Denis Paukaev in supapro.cxx
если функция хочет на вход фигуру но иногда круг, то функция странная
источник

DP

Denis Paukaev in supapro.cxx
либо ей не важно что за фигура либо важно, но тогда она круг и должна принимать
источник

DP

Denis Paukaev in supapro.cxx
а не фигуру абстрактную какую-то
источник

I

Ioann_V in supapro.cxx
Denis Paukaev
если функция хочет на вход фигуру но иногда круг, то функция странная
Нет, не фунцкия, класс, который и принимает круг, да
источник

DP

Denis Paukaev in supapro.cxx
тут не важно что я имею ввиду под функцией
источник

I

Ioann_V in supapro.cxx
просто принимая круг, мы храним внутри полиморфный же указатель
источник

DP

Denis Paukaev in supapro.cxx
кусок кода, сущность, которая будет пользоваться
источник

I

Ioann_V in supapro.cxx
и вот если я потом хочу его менять как круг, мне придется делать static_Cast
источник

I

Ioann_V in supapro.cxx
а я бы вот, в static_cast не хотел бы
источник

I

Ioann_V in supapro.cxx
Вот приведу реальный пример
источник

I

Ioann_V in supapro.cxx
Секунду, я  кодом
источник

D

Danya in supapro.cxx
Принимай просто круг ;)
источник

O

Ofee in supapro.cxx
d7d1cd
Парни, если получилось использовать static_cast вместо forward, помогите написать мне свой forward, но с учетом "защиты от ошибок по невнимательности".
Сейчас стандартом, по сути, закреплена одна конкретная реализация с двумя перегрузками. Я бы просто взял её из libstdc++. Всё, что остаётся имплементатору сверх стандарта — написать тело этим перегрузкам, а там из вариантов остаётся только написать уже привычный static_cast<Arg&&>(arg);
источник

I

Ioann_V in supapro.cxx
class shape
{
   
};

class circle : public shape
{
};

class rect : public shape
{
};

class render_base
{
};

class render_shape : public render_base
{
// Вот тут я могу внутри композиторовать или агрегировать любую фигуру или могу сделать наследование для каждой фигуры от этого класса, в нем я храню скажем вот что(помимо самой фигуры, если композируемся - агрегируемся):

  shape_color;
};

Собственно в классе выше, композиция или наследование? Если композиция, то я там могу хранить любой shape, но что делать, если мне нужно в дальнейшем иметь класс, который всегда хранит данные круга? Я могу туда в класс передать круг, да, но тогда затем, при работ с этим классом, делать static_cast моего shape. Все верно или что не так?
источник

I

Ioann_V in supapro.cxx
Denis Paukaev
тут не важно что я имею ввиду под функцией
up
источник