másoló konstruktor
Megjelenés
Kiejtés
- IPA: [ ˈmaːʃoloːkonʃtruktor]
Főnév
- (informatika) A másoló konstruktor C++-ban egy speciális konstruktor, amelyet akkor hív meg a fordító, amikor:
- egy objektumot másolással hozunk létre:
MyClass obj2 = obj1; - egy objektumot érték szerint adunk át függvénynek:
void f(MyClass obj); - egy objektumot érték szerint adunk vissza függvényből
Szintaxis:
ClassName(const ClassName& other);
Példa:
#include <iostream>
#include <cstring> // strcpy, strlen
class Dolgozo {
private:
char* nev;
public:
// Konstruktor
Dolgozo(const char* n) {
nev = new char[strlen(n) + 1];
strcpy(nev, n);
}
// Másoló konstruktor
Dolgozo(const Dolgozo& other) {
nev = new char[strlen(other.nev) + 1];
strcpy(nev, other.nev);
std::cout << "Másoló konstruktor hívódott meg.\n";
}
// Destruktor
~Dolgozo() {
delete[] nev;
}
void kiir() const {
std::cout << "Név: " << nev << std::endl;
}
};
int main() {
Dolgozo d1("Anna");
Dolgozo d2 = d1; // Másoló konstruktor hívódik
d1.kiir();
d2.kiir();
return 0;
}
Fontos:
Ha az osztály dinamikusan foglal memóriát (new-vel), akkor muszáj írni másoló konstruktort, különben “shallow copy” lesz, és két objektum ugyanarra a memóriára mutat, ami problémát okozhat a destruktorban.
Tipp:
Ha egy osztályban van dinamikus memória:
- Írj másoló konstruktort
- Írj másoló értékadást (
operator=) - Írj destruktort
Ez a Rule of Three (Három szabálya) C++-ban.
Fordítások
Tartalom
- másoló konstruktor - Értelmező szótár (MEK)
- másoló konstruktor - Etimológiai szótár (UMIL)
- másoló konstruktor - Szótár.net (hu-hu)
- másoló konstruktor - DeepL (hu-de)
- másoló konstruktor - Яндекс (hu-ru)
- másoló konstruktor - Google (hu-en)
- másoló konstruktor - Helyesírási szótár (MTA)
- másoló konstruktor - Wikidata
- másoló konstruktor - Wikipédia (magyar)