GhostOnline согласен что указатели как понятие просты это да (это одна сторона) но вот их использование для реализации чего то требует быть очень внимательным (с ними связано больше всего багов и из за них чаще всего отладка по крайней мере в C/C++) поэтому так коробит фраза "что сложного в указателях" ладно вообщем мы разное под этими словами имели ввиду ты говориш о концепции в этом я с тобой согласен а я вспоминал баги и отладку из за них (не из за них а из за недостатолчной внимательности при их использовании) при чем это все равно происходит просто с опытом меньше но всегда есть шанс поймать злой баг из за указателей указывающих в космос
fwrite это настолько же C++ насколько и C в C++ что нет функций ? Страуструп специально сделал доступными функции без использования механизма классов так как это мультипарадигменный язык писать на нем в процедурном стиле тоже можно даже из за мелких фичей помимо классов странно другое все пользователи знают что С++ это мульти язык а как коснется дела то некоторые начинают плеватся на простые функции потому что они их не используют смешивать процедурный и ООП подходы в одной программе что тут плохого ? в какую программу на C++ не плюнь всегда можно найти просто функции да и зачем самого себя лишать гибкости ООП и точка нет простым функциям это же просто смешно другое дело функция printf то что переменое число пареметров в стиле C не переваривает C++ объекты ну так надо просто знать что можно туда передавать а что нет никогда бы не стал плеватся на кого то увидев fwrite ptrintf в его программе на C++
Код выглядит не очень хорошо, да и функционировать может не очень-то хорошо, если смешивать подходы. Например, исключения не поддерживаются сишными функциями. Зачем-то же сделали в STL альтернативы вещам типа fwrite и printf - fstream и stringstream. Вот что очень удобно - так это то, что форматирование вывода для всех потоков одинаковое, чего не скажешь о сишных функциях. Кстати, насчет указателей - в C++ есть хорошая альтернатива - ссылки. А так как объекты всегда лучше создавать в стеке, можно вообще обойтись без указателей (или сильно минимизировать их использование). А те, что все-таки есть, обернуть в std::auto_ptr/boost::scoped_ptr/boost::scoped_array и т.д. Минимум проблем, если все делать правильно и по-C++-овски. Не помню за собой горы труднонаходимых багов в программах из-за неправильного использования указателей.
ну разумеется а так же можно привести 1001 пример когда можно безопасно вызвать fwrite надо в каждой конкретной ситуации смотреть а не штамповать что плохо а что хорошо я собственно против "штампов"