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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    const QColor * c = & QColor.red;
    const QColor * c = & QColor.rgb(12,12,12);
    const QColor * c = & int QColor::red () const;
    const int * c = & int QColor::red () const;

    Взято отсюда: http://www.prog.org.ru/topic_16855_0.html
    Особенно радует фраза: "Пробовал так <....> И другими способами, на которые вылетало множество ошибок".

    Запостил: TarTar, 19 Марта 2011

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

    • )))кста забавно: в си будет варнинг, а в плюсах еррор)
      Ответить
      • Какой еще "варнинг" в С? Вышепроцитированное даже отдаленно не является "кодом" ни в С, ни в С++.
        Ответить
        • я имел ввиду конкретную глупость: получения адреса константы.
          сначала я написал пост, потом понял что это не единственная проблема этого кода, потом понял что я вообще этот код не понимаю)))))
          Ответить
          • "Адреса константы"? Не понимаю. Термин "константа" имеет существенно разные значения в С и в С++.

            В С получить адрес константы вообще невозможно - константы в С никогда не являются lvalue.

            В С++ "константа" вообще термин довольно побочный и расплывчатный, но возможность получить адрес зависит от того, является ли "константа" lvalue.

            Поэтому "варнинг в С" меня по-прежнему смущает. Что за варнинг имеется в виду?
            Ответить
    • раскрываешь тему константных указателей на константу :-)
      Ответить
    • Это не самый перлистый перл данного человека.
      Ответить

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