דילוג לתוכן המרכזי
מודול 4 · שיעור 1 מתוך 29/18 בקורס~12 min
שיעורי מודול (1/2)

כיתות וחפצים

תכנות מונחה עצמים (OOP) היא פרדיגמת ליבה של C++. הוא מאפשר לקבץ נתונים ופונקציות לישויות בודדות הנקראות מחלקות.

מחלקה פועלת כשרטוט, בעוד שאובייקט הוא מופע קונקרטי של אותה מחלקה.

תחביר בסיסי של class

ב-C++, אתה משתמש במילת המפתח class. בניגוד לכמה שפות אחרות, ב-C++, הגדרות מחלקות חייבות להסתיים בנקודה-פסיק ;:

C++
#include <iostream>
#include <string>

class Player {
    // By default, all members of a class are private
private:
    std::string name;
    int score = 0;

public:
    // Public methods to access or modify private data
    void setName(std::string newName) {
        name = newName;
    }

    void addScore(int points) {
        score += points;
    }

    void display() {
        std::cout << name << " has " << score << " points!" << std::endl;
    }
};

int main() {
    Player p; // Creating an object of type Player
    p.setName("Marco");
    p.addScore(15);
    p.display();
    return 0;
}

מפרטי גישה: public ו-private

Encapsulation מורכבת מהסתרת פרטי היישום הפנימיים של אובייקט וחשיפת ממשק מבוקר בלבד.

C++ מנהל את הפקד הזה באמצעות מפרטי גישה:

  • private: חברים נגישים רק בתוך פונקציות חבר של המחלקה עצמה.
  • private היא רמת הגישה המוגדרת כברירת מחדל לשיעורים.
  • public: חברים נגישים מכל מקום מחוץ לכיתה.

נסה זאת בעצמך

פעילות גופנית#cpp.m4.l1.e1
ניסיונות: 0טוען...

הגדר מחלקה בשם מלבן עם שני איברים שלמים פרטיים: רוחב וגובה. הוסף שיטה ציבורית void setDimensions(int w, int h) כדי להגדיר אותם, ושיטה int getArea() שמחזירה רוחב * גובה. בעיקרון, צור מלבן, הגדר את מידותיו ל-5 ו-4, והדפיס את השטח.

טוען עורך...
הצג רמז

השתמש במפרטי הגישה `private:`and`public:`. זכור לסגור את הכיתה עם נקודה-פסיק `;` אחרי הסד המתולתל.

הפתרון זמין לאחר 3 ניסיונות

פעילות גופנית#cpp.m4.l1.e2
ניסיונות: 0טוען...

הגדר מחלקה בשם Counter עם ספירת חברים פרטית מאותחלת ל-0. הוסף שיטות ציבוריות void increment() ו-int getCount(). ב-main, צור אובייקט Counter, הגדל אותו פעמיים והדפיס את הערך.

טוען עורך...
הצג רמז

ב-C++ moderno puoi inizializzare i membri data direttamente in classe: `int count = 0;`.

הפתרון זמין לאחר 3 ניסיונות