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

    +21

    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
    14. 14
    BOOL Space::SetShattle(Shattle* sh)
    {
    	if(!sh)
    		return 1;
    
    	if(!dynamic_cast<Shattle*>(sh) )
    		return 2;
    
    	if(shattle)
    		delete shattle;
    	shattle=sh;
    
    	return 0;
    }

    Как освоить и закрепить знания о приведении типов? Скажем, вот так...

    Запостил: Bart, 09 Марта 2013

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

    • P.S: код - из игрушки, которая ваялась на чистом винапи в процессе изучения оных.
      Ответить
      • > на чистом винапи
        Хех, веселые были времена, когда я тоже ваял всякую фигню на чистом винапи... Ностальгия...
        Ответить
    • > Shattle
      Shuttle?

      > Shattle *sh
      > dynamic_cast<Shattle*>(sh)
      Эм, а когда этот каст вернет NULL? Ну кроме обработанного выше случая, когда sh это NULL.

      > if(shattle)
      > delete shattle;
      В delete есть встроенная проверка на NULL.
      Ответить
    • P.S. Что-то BOOL как-то через жопу странно используется тут, единичкой на фейл, ноликом на успех. В таких случаях, по старой доброй сишной традиции, стоило бы поюзать int, и не смущать читателя...
      Ответить
      • > Что-то BOOL как-то странно используется тут
        В тот момент внутри преобладали емоции о смысле подобных typedef'ов вообще. Да и успех - един, а фейлов - множество.
        Использовать же енум не позволяли религиозные убеждения уровень знаний и отсутствие времени.
        Ответить
    • >Shattle
      О сколько детских мечтаний о космосе разбилось о реальность.
      Ответить
      • Там еще прога креш давала, когда решающий снаряд попадал в ВерховногоПаразитаВселенной. Вот так добро иногда не побеждает зло.
        Ответить
    • > return 2;
      так вот откуда двойки в снах Бендера!
      Ответить
      • > двойки в снах Бендера!
        Главное чтоб Nullов не было!
        Ответить
        • > Главное чтоб Nullов не было!

          Троичная цивилизация. Начало.
          Ответить
    • if shuttle==sh return -1;
      а как же -1?
      Ответить
      • > if shuttle==sh return -1;

        "Жизнь дается нам лишь раз"?)
        Ответить

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