Classes & Objects
Class ek user-defined type hai jo data (member variables) aur uspar kaam karne wale functions (member functions/methods) ko ek saath group karta hai — real-world cheezon ko naturally model karne ka tareeka. Object class ka ek "instance" hai — actual memory mein banaya gaya, apne data ke saath.
Class ke members access karne ke liye dot (.) operator use hota hai (object ke through), jaise struct mein hota tha. Farq ye hai ki class ke members ko access control (public/private) mil sakta hai — ye C++ ki "encapsulation" ka foundation hai.
class Car {
public:
string brand;
int speed;
void drive() {
cout << brand << " chal raha hai " << speed << " km/h par" << endl;
}
};
int main() {
Car car1; // object banaya
car1.brand = "Toyota";
car1.speed = 80;
car1.drive(); // "Toyota chal raha hai 80 km/h par"
Car car2; // ek aur, independent object
car2.brand = "Honda";
car2.speed = 100;
car2.drive();
return 0;
}- Class = blueprint, Object = actual instance
- Members access karne ke liye dot (.) operator
- Ek class se multiple, independent objects ban sakte hain
Objects normally stack par banaye jaate hain (Car car1;) — function khatam hote hi automatically destroy hote hain. Heap par bhi banaye ja sakte hain (new Car()) — manually delete karna padta hai, lekin function khatam hone ke baad bhi zinda rehte hain.
Car stackCar; // stack — automatic cleanup
Car *heapCar = new Car(); // heap — manual cleanup zaroori
heapCar->drive();
delete heapCar; // warna memory leakStruct ki tarah, class ke objects ka array bhi bana sakte ho — har element apna alag data rakhta hai, lekin sab same class structure follow karte hain.
class Point {
public:
int x, y;
};
int main() {
Point points[3];
points[0].x = 1; points[0].y = 2;
points[1].x = 3; points[1].y = 4;
for (int i = 0; i < 2; i++) {
cout << points[i].x << "," << points[i].y << endl;
}
return 0;
}