تجول C ++

C ++ الصفحة الرئيسية C ++ مقدمة C ++ ابدأ بناء جملة C ++ إخراج C ++ تعليقات C ++ متغيرات C ++ مدخلات مستخدم C ++ أنواع بيانات C ++ عوامل C ++ سلاسل C ++ C ++ الرياضيات C ++ منطقية شروط C ++ مفتاح C ++ C ++ أثناء التكرار C ++ للحلقة C ++ استراحة / متابعة صفائف C ++ مراجع C ++ مؤشرات C ++

وظائف C ++

وظائف C ++ معلمات وظيفة C ++ وظيفة C ++ الزائد

فئات C ++

C ++ OOP فئات / كائنات C ++ طرق فئة C ++ C ++ البناة محددات الوصول C ++ تغليف C ++ الوراثة C ++ تعدد الأشكال C ++ ملفات C ++ استثناءات C ++

C ++ كيف

أضف عددين

أمثلة C ++

أمثلة C ++ مترجم C ++ تمارين C ++ اختبار C ++


C ++ البناة


المنشئون

المُنشئ في C ++ هو طريقة خاصة يتم استدعاؤها تلقائيًا عند إنشاء كائن من فئة.

لإنشاء مُنشئ ، استخدم نفس اسم الفئة ، متبوعًا بالأقواس ():

مثال

class MyClass {     // The class
  public:           // Access specifier
    MyClass() {     // Constructor
      cout << "Hello World!";
    }
};

int main() {
  MyClass myObj;    // Create an object of MyClass (this will call the constructor)
  return 0;
}

ملاحظة: المُنشئ له نفس اسم الفئة ، وهو دائمًا public، وليس له أي قيمة مرتجعة.


معلمات المنشئ

يمكن للمُنشئين أيضًا أن يأخذوا المعلمات (تمامًا مثل الوظائف العادية) ، والتي يمكن أن تكون مفيدة لتعيين القيم الأولية للسمات.

الفئة التالية لها brand، modelوسمات year، ومنشئ بمعلمات مختلفة. داخل المُنشئ ، قمنا بتعيين السمات مساوية لمعلمات المُنشئ ( brand=x، إلخ). عندما نستدعي المُنشئ (عن طريق إنشاء كائن من الفئة) ، فإننا نمرر المعلمات إلى المُنشئ ، والتي ستحدد قيمة السمات المقابلة لها:

مثال

class Car {        // The class
  public:          // Access specifier
    string brand;  // Attribute
    string model;  // Attribute
    int year;      // Attribute
    Car(string x, string y, int z) { // Constructor with parameters
      brand = x;
      model = y;
      year = z;
    }
};

int main() {
  // Create Car objects and call the constructor with different values
  Car carObj1("BMW", "X5", 1999);
  Car carObj2("Ford", "Mustang", 1969);

  // Print values
  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
  return 0;
}

تمامًا مثل الوظائف ، يمكن أيضًا تعريف المنشئات خارج الفصل الدراسي. أولاً ، قم بتعريف المُنشئ داخل الفصل ، ثم قم بتعريفه خارج الفئة عن طريق تحديد اسم الفئة ، متبوعًا بعامل تحليل النطاق :: ، متبوعًا باسم المُنشئ (وهو نفس الفئة):

مثال

class Car {        // The class
  public:          // Access specifier
    string brand;  // Attribute
    string model;  // Attribute
    int year;      // Attribute
    Car(string x, string y, int z); // Constructor declaration
};

// Constructor definition outside the class
Car::Car(string x, string y, int z) {
  brand = x;
  model = y;
  year = z;
}

int main() {
  // Create Car objects and call the constructor with different values
  Car carObj1("BMW", "X5", 1999);
  Car carObj2("Ford", "Mustang", 1969);

  // Print values
  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
  return 0;
}