C++ それは海のようなものです。深く、力強く、あなたを頂上に連れて行くことも、最初の数分で溺れさせることもできます。この言語での旅を始めたばかりの方は、このサバイバルマップが生き残りに役立ちます🚢。

事実を受け入れてください:あなたはすべてのC ++を学ぶことはありません(そしてそれは普通です!)
C ++は40年以上にわたって開発されています。新しい標準(C ++ 11、14、17、20、23)ごとに、数十の機能が追加されました。経験豊富な開発者でさえ、すべての詳細を知っているわけではありません。これは完全に正常です。
ヒント: C++11から現代のC ++を学び、必要に応じて機能を習得してください。古い慣行に時間を費やさないでください。
メモリ管理:あなたの最初のボス。
PythonとJavaが「easy mode」である場合、C ++のメモリ管理は Dark Souls しかし、良いニュースがあります。
黄金のルール:スマートポインタを使用する
// ❌ 悪い:手動メモリ管理
MyClass* obj = new MyClass();
// ...例外をスローできるコード
delete obj; // 実行できない可能性があります!
// ✅ 良い:スマートポインター
auto obj = std::make_unique<MyClass>();
// メモリは自動的に解放されます
選択の優先順位:
ローカルオブジェクト(スタックで作成)
std::unique_ptr— 一意の所有権std::shared_ptr— オブジェクトが所有者間で共有されている場合生の指標は観察のみを目的としており、所有するものではありません
コンパイラの警告を無視しないでください。
C ++コンパイラは厳格ですが賢明な指導者です。警告を最大限に有効にします。
# GCC/Clang
g++ -Wall -Wextra -Werror your_file.cpp
# MSVC
cl /W4 /WX your_file.cpp
今日の警告は、リリース前の午前3時に表示される明日のバグです😅。

RAIIはあなたの救命浮き輪です
RAII (リソース取得は初期化です)—C++でのサバイバル哲学。リソースはコンストラクターでキャプチャされ、デストラクターで解放されます。
// ファイルは自動的に閉じられます
{
std::ifstream file("data.txt");
// ファイルの操作
} // デストラクターがファイルを閉じます
// ミューテックスも同様です
{
std::lock_guard<std::mutex> lock(my_mutex);
// クリティカルセクション
} // ミューテックスは自動的に解放されます
close() や unlock() を忘れることはありません。RAIIはあなたの忠実な友人です。
STL を使用してください。これはチートではありません。
標準テンプレートライブラリ(STL)は、強力なツールであり、怠惰な人のための松葉杖ではありません。
// ❌ そのようなことはしないでください
int* arr = new int[100];
int size = 0;
// ✅ このようなことを行ってください
std::vector<int> vec;
vec.push_back(42);
std::vector— 配列のメインコンテナーstd::string— C 文字列のことは忘れてくださいstd::map/std::unordered_map— 辞書std::set— セット
C++ は週末に学ぶものではありません。セグメンテーション エラーやメモリ リークはすべて前進の一歩です。ベテランと自分を比較しないでください。数ヶ月後、あなたは進歩に驚くでしょう。
溺れていると感じたら、泳ぐことを学んでいる証拠です。水面に浮かび続ければ、C++の海があなたに宝物を明らかにしてくれます🌊。
B 当社のアプリ インタラクティブなレッスン、プロジェクト、 コミュニティプログラミングの道をサポートします。 コディックと一緒に学ぼう - メモリリークを恐れる必要はありません 😄
私たちのチームに参加してください - https://t.me/coursme
あなたが最初に最も役立つアドバイスは何ですか?コメントに書いてください!
