Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الـ Classes مقابل الـ Objects

جزء من قسم Object Oriented Programming في رحلة C++ على Coddy — الدرس 6 من 104.

الفئة (Class) هي مخطط يحدد الهيكل. والكائن (Object) هو مثيل محدد تم إنشاؤه من ذلك المخطط.

الفئة (المخطط)

class Car {
public:
    std::string brand;
    int year;
    
    std::string getInfo() {
        return brand + " (" + std::to_string(year) + ")";
    }
};

إنشاء كائنات متعددة (instances)

Car car1;
car1.brand = "Tesla";
car1.year = 2023;

Car car2;
car2.brand = "Honda";
car2.year = 2020;

std::cout << car1.getInfo() << std::endl;  // Tesla (2023)
std::cout << car2.getInfo() << std::endl;  // Honda (2020)

كل كائن مستقل. تغيير car1 لا يؤثر على car2. يمكنك إنشاء كائنات متعددة من نفس الفئة، بحيث يحتفظ كل منها ببياناته الخاصة.

challenge icon

التحدي

متوسط

قم بإنشاء فئة Car (مخطط). يقوم البرنامج بإنشاء كائنين منفصلين (مثيلين) منها، لكل منهما بياناته الخاصة:

  • الأعضاء العامة (Public members): brand (string)، year (int)
  • getInfo() — تعيد "<brand> (<year>)"

ورقة مرجعية

الـ class هو مخطط يحدد الهيكل. أما الـ object فهو نسخة محددة تم إنشاؤها من ذلك المخطط.

تعريف class:

class Car {
public:
    std::string brand;
    int year;
    
    std::string getInfo() {
        return brand + " (" + std::to_string(year) + ")";
    }
};

إنشاء objects من class:

Car car1;
car1.brand = "Tesla";
car1.year = 2023;

Car car2;
car2.brand = "Honda";
car2.year = 2020;

std::cout << car1.getInfo() << std::endl;  // Tesla (2023)
std::cout << car2.getInfo() << std::endl;  // Honda (2020)

كل object مستقل ويحتفظ ببياناته الخاصة. تغيير object واحد لا يؤثر على الآخر.

جرّب بنفسك

#include <iostream>
#include "Car.h"

int main() {
    std::string brand1, brand2;
    int year1, year2;
    
    std::getline(std::cin, brand1);
    std::cin >> year1;
    std::cin.ignore();
    std::getline(std::cin, brand2);
    std::cin >> year2;
    
    Car car1;
    car1.brand = brand1;
    car1.year = year1;
    
    Car car2;
    car2.brand = brand2;
    car2.year = year2;
    
    std::cout << "Car 1: " << car1.getInfo() << std::endl;
    std::cout << "Car 2: " << car2.getInfo() << std::endl;
    return 0;
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Object Oriented Programming