LINUX.ORG.RU

Как понять в базовом классе что виртуальная функция была перегружена в наследнике?

 


0

2
struct A{
	virtual void f(){}
	bool check(){ return ... } 
};
struct B: public A{
	void f(){}
};
struct C: public A{
};

Чего бы такого написать в A::check() что бы при вызове B().check() получать true а при вызове C().check() получать false?

Ввести в A флаг и изменять его значение неспортивно;-)

★★★★

Так тебе нужен обыкновенный callback. Callback есть - вызываем в цикле, нет - выходим.

superuser ★★★★★
()

итого

тс-а закидали говном и он пытается троллить оправдываться. а почему? потому что задал в /dev вопрос, за который в приличном программистском обществе бьют линейкой по губам. а именно, использование ооп абсолютно не по назначению.

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

anonymous
()
Ответ на: итого от anonymous

О, вот и анонимная школота со своим икспертдным мнением!

Я бы сказал, что вопрос возник при попытке уменьшить число строк кода с 6тыс хотя бы до 3х, но поскольку Вы не можете адекватно оценивать сложность чего либо (кроме расклада в солитере) - то Вам наверное надо заняться уроками а не на ЛОР-е рассуждать о применимости ООП. Успехов в учебе (а то вон арифметика у Вас хромает)!

AntonI ★★★★
() автор топика
Ответ на: комментарий от AntonI

телепаты в треде

6000 строк — это ни о чём. чтобы далеко не ходить, возьмём этого нашего страуструпа. отец утверждал, что его с++ нужен начиная от 25000.

школьники вроде меня работают над кодовой базой в миллионы строк, возраст которой превышает 10 лет.

anonymous
()
Ответ на: телепаты в треде от anonymous

6000 строк для числодробилок это довольно много, впрочем где Вы а где числодробилки...

школьники вроде меня работают над кодовой базой в миллионы строк, возраст которой превышает 10 лет.

Судя по Вашим комментариям, Вы не асилите даже программу для решения квадратного уравнения. Хеллоу ворд - это Ваш потолок, ну там ООП и правда ни к чему.

AntonI ★★★★
() автор топика
Ответ на: комментарий от AntonI

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

6000 строк учебника по механике несравнимо сложнее для восприятия чем 6000 строк «войны и мира». но это совсем не значит, что их нужно бить на (принципиально) разное количество глав.

anonymous
()
Ответ на: комментарий от anonymous

Мдя, видно что Вы не очень то читали научную литературу - в гуманитарной средней школе видимо учитесь? Ооочень неудачный пример, в Ландаушице есть параграфы короче чем отдельные предложения у Л.Н. Толстого. А уж если справочник Корна взять... впрочем эти книги Вам в руки никогда не попадут, не волнуйтесь.

А если говорить за программирование, то есть 100500 классов в больших проектах длина которых - первые десятки строк. Так что Вы сказки о своих кодовых базах в миллионы строк рассказывайте одноклассницам - они поверят.

AntonI ★★★★
() автор топика
Ответ на: комментарий от AntonI

в Ландаушице есть параграфы короче чем отдельные предложения у Л.Н. Толстого

ложь

если говорить за программирование

с кем?

100500 классов в больших проектах длина которых - первые десятки строк

в больших проектах

какое отношение это имеет к оп-посту?

anonymous
()
Ответ на: комментарий от anonymous

Деточка, я уж не буду Вас носом тыкать в конкретные страницы Ландаушица и войны и мира - кто эти книги читал тот и так в курсе. а кто не читал, тому бесполезно объяснять. Вы даже троллить толком не можете, у Вас для этого банально нет ни ума ни опыта.

Все, садитесь за уроки - разговаривать с Вами на любую тему скучно и неинтересно. Бай.

AntonI ★★★★
() автор топика
Ответ на: комментарий от AntonI

я уж не буду Вас носом тыкать

засчитано

по остальным тезисам, как я понял, возражений нет.

anonymous
()

прочел где-то половину "советов"

Все они так или иначе говнястые

виртуальный check() - я смогу кинуть идеологически неправильное значение, и вся эта ваша ипотень навернется.

Вариант с выносом цикла может и неплох, но это - горожение лишних сущностей.

Вариант с говнохаком под конкретный компилер - говно по определению.

как насчет иерархии BaseA <- SimpleCycleA <- СoncreteA / BaseA <- ComplexCycleA <- ConcreteB ?

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

yaws
()
Ответ на: прочел где-то половину "советов" от yaws

Если честно, сейчас просто лень - оно уже работает. Вероятность с ошибкой в чеке мизерная (и сразу вылезет на тесте), но я может этот чек вообще уберу, няхай крутит цикл в холостую - надо будет только профилирование сначала сделать.

AntonI ★★★★
() автор топика
Ответ на: комментарий от i-rinat

Ты знал, ты не мог догадаться:-)

AntonI ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.