Я перемещаюсь от Java до C++ и действительно наслаждался им. Одна вещь, которой я не наслаждаюсь, не понимает памяти вообще, потому что Java раньше делал это для меня.
Я купил книгу: Память как Концепция программирования в C и C++ - Frantisek Franek
Есть ли некоторые хорошие сайты для меня, чтобы пойти и узнать в интерактивном режиме о C/C++ и использовании памяти (учебные руководства, форумы, группы пользователей)?
Один последний метод не упомянут. Вместо того, чтобы цитировать/избегать каждого использования, вы можете отключить глоббинг. Таким образом, если вы хотите использовать калькулятор много, вы не должны избегать каждого использования:
# For bash
set -o noglob
# For csh/tcsh
set noglob
# Now that noglob is set, you can safely use *
calc 3 * 3
-121--4551158- Одной из причин опыта Vista, предположительно, было то, что MSFT сократил «простые человеческие» тестеры в пользу тестеров-программистов, которые написали сценарии.
Конечно, сценарии не заметили таких вещей, как широкий диапазон различных тем, когда вы углубились в панель управления, или диалоги оценки копирования или другие «второстепенные» функции GUI, которые заставили весь продукт выглядеть дерьмово
-121--3027767-Попробуйте:
http://www.mycplus.com/tutorials/cplusplus-programming-tutorials/memory-management/
http://www.cantrip.org/wave12.html
http://linuxdevcenter.com/pub/a/linux/2003/05/08/cpp_mm-1.html
И в викибуке: http://en.wikibooks.org/wiki/C++_Programming/Memory_Management
Эта статья сравнит операторов управления памятью Java с эквивалентами C++: http://www.javamex.com/java_equivalents/memory_management.shtml
http://www.infosys.tuwien.ac.at/Staff/tom/Teaching/UniZH/CPP/slides/cpp_07.pdf
Надеюсь, что это поможет вам!
Управление памятью в C++ почти автоматическое (с некоторыми оговорками).
Большую часть времени не надо динамически выделять память.
Используйте локальные переменные (и обычные переменные-члены), и они будут создаваться и уничтожаться автоматически.
Когда вам нужны указатели, используйте умные указатели.
Начните с использования boost::shared_pointer
Это поможет вам встать на правильный путь и перестать случайно удалять память в неподходящий момент, и 90% вашего кода будет освобождаться правильно (к сожалению, циклы создадут проблему (только в плане утечек), и вам нужно будет разработать соответствующий дизайн (но у нас есть другие умные указатели для работы с циклами weak_ptr))
Мое фундаментальное правило заключается в том, что класс никогда не должен содержать RAW-указатель. Всегда используйте какую-либо форму стандартного контейнера или умный указатель. Используя их, вызовы деструктора становятся автоматическими.
Как только у вас появится это чувство, начните читать о других умных указателях и о том, когда их следует использовать: