C++ Kya 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++ = C + Object-Oriented Programming (OOP)
- 1979 mein Bjarne Stroustrup ne banayi
- Zyadatar C code C++ mein bhi chalta hai (superset)
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 programC++ 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