ב- 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 (); }
פורסם ב 24-12-2019