🧱
Basics

C++ Kya Hai?

Introduction
💡 C++ ko C ka bada bhai samjho — same engine (fast, low-level control), lekin upar ek poora toolbox add ho gaya hai (objects, classes, reusable libraries) jo bade, complex software banana aasan bana deta hai.

C++ 1979 mein Bjarne Stroustrup ne banayi thi — "C with Classes" ke naam se shuru hui, kyunki maqsad tha C ki speed rakhte hue Object-Oriented Programming (OOP) add karna. Aaj C++ game engines (Unreal), browsers (Chrome ka bada hissa), databases, aur high-frequency trading systems mein use hoti hai — jaha performance aur structure dono chahiye.

C se sabse bada farq: C++ mein "classes" hoti hain — data aur uspar kaam karne wale functions ko ek saath group kar sakte ho (real-world cheezon ko model karne ka natural tarika). C pure "procedural" hai (sirf functions aur data alag-alag), C++ "multi-paradigm" hai (procedural bhi, object-oriented bhi).

C++ mostly C ka superset hai — zyadatar C code C++ mein bhi chalta hai, lekin C++ mein extra features hain: references, function overloading, classes, templates, aur ek poora Standard Template Library (STL) jo ready-made data structures deta hai.

#include <iostream>
using namespace std;

int main() {
  cout << "Hello, C++!" << endl;
  return 0;
}
🧱
C++ ko C ka bada bhai samjho — same engine (fast, low-level control), lekin upar ek poora toolbox add ho gaya hai (objects, classes, reusable libraries) jo bade, complex software banana aasan bana deta hai.
1 / 6
⚡ झट से Recap
  • C++ = C + Object-Oriented Programming (OOP)
  • 1979 mein Bjarne Stroustrup ne banayi
  • Zyadatar C code C++ mein bhi chalta hai (superset)
इस page में (2 subtopics)

C++ periodically nayi "standards" release karta hai (jaise C++11, C++14, C++17, C++20, C++23) — har ek naye features add karta hai (jaise range-based for C++11 mein aaya, structured bindings C++17 mein). Compiler flags (jaise -std=c++17) se decide karte ho kaunsa standard use karna hai.

C++11 sabse bada milestone tha — auto keyword, lambda expressions, smart pointers, range-based for, sab isi mein aaye. Modern C++ code likhte waqt kam se kam C++11 target karna standard practice hai.

// Compile karte waqt standard specify karo:
// $ g++ -std=c++17 program.cpp -o program
💡Tip: Interview mein "modern C++" ka matlab usually C++11 aur uske baad ki features hote hain — smart pointers, auto, lambdas, range-based for waghera.

C++ mein manual memory management hai (new/delete), Java mein automatic garbage collection hai. C++ compiled hoke seedha machine code banata hai (platform-specific), Java bytecode banata hai jo JVM chalata hai (platform-independent). C++ multiple inheritance support karta hai, Java nahi (interfaces se similar kaam karta hai).

// C++: manual memory management
int *p = new int(5);
delete p;   // zaroori — warna leak

// Java: automatic garbage collection
// Integer p = new Integer(5); // GC khud clean karega
💡Tip: C++ ka manual memory management performance-critical applications (games, embedded, trading systems) mein fayda deta hai — koi unpredictable GC pause nahi.