подскажите пожалуйста

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by mmoskva2011, 12 Jun 2011.

  1. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    GhostOnline
    согласен что указатели как понятие просты это да (это одна сторона)
    но вот их использование для реализации чего то требует
    быть очень внимательным (с ними связано больше всего багов и
    из за них чаще всего отладка по крайней мере в C/C++) поэтому так коробит фраза
    "что сложного в указателях"
    ладно вообщем мы разное под этими словами имели ввиду
    ты говориш о концепции в этом я с тобой согласен а я вспоминал баги и отладку
    из за них (не из за них а из за недостатолчной внимательности при их использовании)
    при чем это все равно происходит просто с опытом меньше но всегда
    есть шанс поймать злой баг из за указателей указывающих в космос
     
  2. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    fwrite это настолько же C++ насколько и C в C++ что нет функций ?
    Страуструп специально сделал доступными функции без использования
    механизма классов так как это мультипарадигменный язык
    писать на нем в процедурном стиле тоже можно даже из за мелких
    фичей помимо классов странно другое все пользователи знают
    что С++ это мульти язык а как коснется дела то некоторые
    начинают плеватся на простые функции потому что они их не используют
    смешивать процедурный и ООП подходы в одной программе что тут плохого ?
    в какую программу на C++ не плюнь всегда можно найти просто функции
    да и зачем самого себя лишать гибкости ООП и точка нет простым функциям
    это же просто смешно другое дело функция printf то что переменое число
    пареметров в стиле C не переваривает C++ объекты ну так надо просто знать
    что можно туда передавать а что нет
    никогда бы не стал плеватся на кого то увидев fwrite ptrintf в его программе
    на C++
     
  3. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Код выглядит не очень хорошо, да и функционировать может не очень-то хорошо, если смешивать подходы. Например, исключения не поддерживаются сишными функциями. Зачем-то же сделали в STL альтернативы вещам типа fwrite и printf - fstream и stringstream. Вот что очень удобно - так это то, что форматирование вывода для всех потоков одинаковое, чего не скажешь о сишных функциях.

    Кстати, насчет указателей - в C++ есть хорошая альтернатива - ссылки. А так как объекты всегда лучше создавать в стеке, можно вообще обойтись без указателей (или сильно минимизировать их использование). А те, что все-таки есть, обернуть в std::auto_ptr/boost::scoped_ptr/boost::scoped_array и т.д. Минимум проблем, если все делать правильно и по-C++-овски. Не помню за собой горы труднонаходимых багов в программах из-за неправильного использования указателей.
     
    #23 GRRRL Power, 14 Jun 2011
    Last edited: 14 Jun 2011
  4. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    ну разумеется а так же можно привести 1001 пример когда можно безопасно вызвать fwrite надо в каждой конкретной ситуации смотреть а не штамповать что плохо а что хорошо я собственно против "штампов"
     
    #24 greki_hoy, 14 Jun 2011
    Last edited: 15 Jun 2011