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
1234567891011121314151617class 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
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; };
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.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme