Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Konstruktoreiden Delegointi | Konstruktorit ja Destruktorit
C++ OOP

Konstruktoreiden Delegointi

Pyyhkäise näyttääksesi valikon

Konstruktorin delegointi (tunnetaan myös nimillä konstruktoriketjutus tai eteenpäin välittäminen) mahdollistaa sen, että yksi konstruktori kutsuu toista saman luokan sisällä yhteisen alustuksen uudelleenkäyttöä varten.

Konstruktorin delegoinnin syntaksi

Konstruktorin delegointia käytetään yleensä alustuksen listan syntaksissa. Siinä käytetään kaksoispistettä (:), jota seuraa konstruktori, johon halutaan delegoida, sekä mahdolliset lisäargumentit tai -parametrit, jotka täytyy välittää.

user_account.h

user_account.h

1234567891011121314151617
class UserAccount { public: // Primary constructor UserAccount(int userId, int accessLevel) : userId(userId), accessLevel(accessLevel) { // Constructor body } // Delegating constructor (default accessLevel) UserAccount(int userId) : UserAccount(userId, 0) { // Constructor body } int userId; int accessLevel; };

Alustamislistojen käyttö konstruktorin delegoinnissa ei ole pakollista, mutta sitä suositellaan selkeyden ja suorituskyvyn vuoksi. Tarvittaessa voit kutsua ylikuormitettua konstruktoria toisesta konstruktorista.

point.h

point.h

123456789101112131415
#include <iostream> class Point { public: // Delegating constructor to initialize default point at origin Point() { Point(0, 0); } // Main constructor Point(int x, int y) : x(x), y(y) {} int x, y; };
Note
Huomio

Mahdollinen ääretön rekursio voi ilmetä konstruktorin delegoinnissa. Varmista, että konstruktorit on rakennettu siten, että rekursiiviset kutsusilmukat vältetään.

Konstruktoreiden delegointi tarjoaa useita etuja olio-ohjelmoinnissa ja on kätevä käyttää, vaikka se saattaa aluksi vaikuttaa monimutkaiselta.

question mark

Mitä on konstruktoreiden delegointi?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 2. Luku 5
some-alt