1. C++ / Говнокод #1850

    +52.3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    void GAMEPLAYER::cCar::abandonCar(GAMEPLAYER::cPlayer* player){
    	for(unsigned int i=0;i<size();++i){
    		cBaseAnimManager * bam = get(i);
    		if(!bam->isCarRider())
    			continue;
    		cCarRider* rdr = (cCarRider*)bam;
    		if(rdr->gScript()==player->gScript()){
    			delete rdr;
    			storage.erase(i);
    			--i;
    		}
    	}
    }

    НЕ time-critical код из некоторой игры
    Наблюдаем:
    1) непониманием того, зачем нужно наследование
    2) плохо пахнущие имена переменных

    Запостил: generalgda, 16 Сентября 2009

    Комментарии (6) RSS

    • таки cCar контейнер унаследовал. лол
      Ответить
      • Всегда думал, что контейнер - вещь тупая, в которой только картошку можно хранить. А тут она ещё сама и ездить должна...
        Ответить
    • > непониманием того, зачем нужно наследование
      Скажите, уважаемый, а где в этом коде наследование? Или хотя бы где предполагается его применять? А то не понятно, причем тут оно.
      Ответить
      • То, что хранится в storage (bam), может либо наследоваться, либо не наследоваться от cCarRider (проверяется это через isCarRider()).
        И это действительно выглядит кривовато.
        Ответить
        • А, все ясно.
          Похоже я наблюдал, что автор этого топика отличается:
          1. Непониманием того, что такое полиморфизм.
          =)
          Ответить
    • Наледование тут непричем, конеяно. А вот ручной delete намекает на интересную отладку в будушем.

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

    Добавить комментарий