ב- C ++, מה ההבדל בין בנאי מרומז לבנאי ברירת מחדל?


תשובה 1:
כיתה פו {
 ציבורי:
  // ברירת מחדל לשרת.
  Foo (): i_ (0) {}

  // מתאם המרה מרומז.
  Foo (int i): i_ (i) {}

  // העתק קטור; שום המרה אינה מעורבת.
  Foo (const Foo & f): i_ (f.i_) {}
 פרטי:
  int i_;
};

בטל בר (פו פו) {
  // עשה משהו עם f
}

הראשי () {
  Foo f0; // משתמש בברירת מחדל לשרת.
  Foo f1 (1); // משתמש בכר המרה.
  סרגל (f0); // משתמש בכותרת העתקה.
  בר (2); // משתמש בכיר המרה מרומז.
}
  Foo (int i = 0): i_ (i) {};

תשובה 2:
# כלול <זרם>
מבנה X {
    X () {std :: cout << "זהו קוד ברירת המחדל של X \ n"; }
};
מבנה Y {
    Y (int n = 0) {std :: cout << "זהו קוד ברירת המחדל של Y \ n"; }
};
מבנה Z: X {
     // הקונסטרוקטור של Z מוגדר באופן מרומז
     // כ- Z (): X () {}
};
int main ()
{
    X x; // שיחות X :: X ()
    Y y; // קורא Y :: Y ()
    Z z; // קורא Z :: Z (), שמתקשר X: X ();
}