متغيرات الأعضاء والطرائق
صرّح بمتغيرات الأعضاء، واكتب طرائق الأعضاء، وأشر إليها عبر النسخ.
متغيرات الأعضاء والطرائق درس مجاني في C++ Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C++ Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C++ Academy 4 دروس في المجموع.
أعضاء الفئة
يمكن أن تحتوي الفئة على:
- متغيرات الأعضاء (البيانات، وتُسمى أحيانًا الحقول)
- دوال الأعضاء (الأساليب)
- الأنواع المتداخلة (typedefs والتعدادات والفئات)
- الأعضاء الثابتة (المشتركة بين جميع النسخ)
التصريح بمتغيرات الأعضاء
صرّح عنها داخل جسم الفئة. واستخدم مهيئات القيم الافتراضية داخل الفئة المتاحة منذ C++11 لتحسين الوضوح.
class Person {
std::string name_ = "unknown";
int age_ = 0;
public:
// ...
};اصطلاحات التسمية
الاصطلاحات الشائعة للأعضاء الخاصة:
- شرطة سفلية لاحقة:
name_ m_بادئة:m_name- أسماء عادية مع
this->ضمني
اختر أسلوبًا واحدًا والتزم به.
تعريف الأساليب داخل الفئة
يمكن تعريف الأساليب القصيرة inline داخل جسم الفئة — وتكون inline ضمنيًا.
class Counter {
int n_ = 0;
public:
void increment() { ++n_; }
int value() const { return n_; }
};تعريف الأساليب خارج الفئة
تُعرَّف الأساليب الأطول عادةً خارج الفئة، وغالبًا في ملف .cpp. استخدم عامل حل النطاق ::.
// header
class Logger {
public:
void log(const std::string& msg);
};
// implementation
void Logger::log(const std::string& msg) {
std::cout << "[LOG] " << msg << "\n";
}استدعاء الأساليب
استخدم صياغة النقطة مع الكائنات، وصياغة السهم مع المؤشرات.
Counter c;
c.increment();
Counter* p = &c;
p->increment();الأساليب الثابتة
ينبغي وسم الأساليب التي لا تعدّل الكائن باستخدام const. ويمكن استدعاؤها على النسخ const.
class Counter {
int n_ = 0;
public:
int value() const { return n_; } // does not modify *this
};الأعضاء الثابتة
تنتمي الأعضاء الثابتة إلى الفئة، لا إلى النسخ. صرّح عنها باستخدام static، وعرّفها في ملف المصدر.
class Logger {
public:
static int messageCount;
static void log(const std::string& msg);
};
int Logger::messageCount = 0;محددات الوصول
ثلاثة مستويات للوصول:
public— يمكن الوصول إليه من أي مكانprivate— يمكن الوصول إليه داخل الفئة فقطprotected— يمكن الوصول إليه داخل الفئة والفئات المشتقة
التغليف عمليًا
اجعل أعضاء البيانات خاصة. واعرضها عبر أساليب تفرض الثوابت.
class Temperature {
double celsius_ = 0.0;
public:
void setCelsius(double c); // validates range
double celsius() const { return celsius_; }
double fahrenheit() const { return celsius_ * 9.0/5.0 + 32; }
};الأساليب والدوال الحرة
ليس من الضروري أن يكون كل شيء أسلوبًا. إذا كانت الدالة تستخدم الواجهة العامة فقط، ففضّل دالة حرة — فهذا يقلل الاقتران.
اختبار سريع
ما الكلمة المفتاحية التي تَسِم دالة العضو بأنها لا تعدّل الكائن؟
مراجعة
تحتفظ متغيرات الأعضاء بالحالة الخاصة بكل نسخة، بينما تعمل الأساليب على تلك الحالة. وَسِم الأساليب غير المعدِّلة باستخدام const. اجعل البيانات خاصة، واعرض السلوك عبر واجهة عامة صغيرة ومدروسة.
الأسئلة الشائعة
هل درس «متغيرات الأعضاء والطرائق» مجاني؟
نعم — نص درس «متغيرات الأعضاء والطرائق» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C++ Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C++ Academy 4 دروس في المجموع.
ماذا ستتعلم في «متغيرات الأعضاء والطرائق»؟
صرّح بمتغيرات الأعضاء، واكتب طرائق الأعضاء، وأشر إليها عبر النسخ. تتمرن على C++ Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C++ Academy؟
لا تُشترط خبرة سابقة. C++ Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «متغيرات الأعضاء والطرائق»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C++ Academy هذا؟
نعم. كل درس في C++ Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- struct مقابل class: متى تستخدم كلًّا منهما
- متغيرات الأعضاء والطرائق
- المنشئات وقوائم تهيئة الأعضاء
- مؤشر this والتغليف