> For the complete documentation index, see [llms.txt](https://nodejsdocs.gitbook.io/everthing-c++/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nodejsdocs.gitbook.io/everthing-c++/chapter-1-lets-say-hello-to-c++.md).

# Chapter 1: Let's Say Hello to C++

#### 🚀 Why C++?

C++ is a **powerful, low-level yet high-abstraction** language, widely used in areas where **performance, memory control, and real-time responsiveness** matter — such as trading systems, game engines, robotics, embedded devices, and large-scale simulation software.

Key strengths:

* Manual control over memory and CPU cycles
* Zero-cost abstractions
* RAII (Resource Acquisition Is Initialization)
* High-performance STL and templates
* Extremely portable and battle-tested

***

#### 🛠️ Development Environment Setup

**✅ Choose a Compiler**

| Platform    | Compiler(s)                              |
| ----------- | ---------------------------------------- |
| Windows     | MSVC (Visual Studio), MinGW (GCC), Clang |
| Linux/macOS | GCC, Clang                               |

**Recommended:**

* GCC ≥ 11.0
* Clang ≥ 13.0
* MSVC ≥ 2019

**✅ Choose an Editor / IDE**

| Tool                        | Features                         |
| --------------------------- | -------------------------------- |
| **VS Code** + C++ Extension | Lightweight, highly customizable |
| **CLion**                   | Best C++ IDE (JetBrains)         |
| **Visual Studio**           | Full-featured (Windows only)     |
| **Vim/Neovim**              | Terminal power users             |

***

#### 🧪 First Hello World

```
#include <iostream>

int main() {
    std::cout << "Hello, C++ World!" << std::endl;
    return 0;
}
```

How to compile (Linux/macOS):

```
g++ hello.cpp -o hello
./hello
```

For Windows (MinGW):

```
g++ hello.cpp -o hello.exe
hello.exe
```

***

#### ⚙️ Build Tools You Should Know

| Tool              | Purpose                                 |
| ----------------- | --------------------------------------- |
| **Make / CMake**  | Automate build process (cross-platform) |
| **g++ / clang++** | Compile code manually                   |
| **lldb / gdb**    | Debugging tools                         |
| **valgrind**      | Detect memory leaks                     |

***

#### 📦 Project Structure (Basic)

```
project/
├── src/
│   └── main.cpp
├── include/
│   └── my_header.hpp
├── Makefile
└── build/
```

Use this structure as your codebase grows.

***

#### 🧠 What You’ll Learn Next

After this chapter, you'll begin with:

* Variables, Data Types, and Memory Layout
* Control structures and logic
* Functions and parameter passing
* Memory management: stack vs heap
* Pointers, references, and RAII

***
