Si escribimos una clase que no tiene métodos y la clase no hereda de otra clase, el compilador le agregará seis métodos automáticamente. Los métodos que puede generar automáticamente el compilador son:
- Constructor predeterminado : es equivalente a un constructor predeterminado vacío. El constructor predeterminado es un constructor al que se puede llamar sin argumentos. Se llama cuando se crea una instancia sin inicialización.
class_name object_name;
- Considere una clase derivada de otra clase con el constructor predeterminado, o una clase que contenga otro objeto de clase con el constructor predeterminado. El compilador necesita insertar código para llamar a los constructores predeterminados de la clase base/objeto incrustado.
CPP
#include <iostream> using namespace std; class Base { public: // compiler "declares" constructor }; class A { public: // User defined constructor A() { cout << "A Constructor" << endl; } // uninitialized int size; }; class B : public A { // compiler defines default constructor of B, and // inserts stub to call A constructor // compiler won't initialize any data of A }; class C : public A { public: C() { // User defined default constructor of C // Compiler inserts stub to call A's constructor cout << "C Constructor" << endl; // compiler won't initialize any data of A } }; class D { public: D() { // User defined default constructor of D // a - constructor to be called, compiler inserts // stub to call A constructor cout << "D Constructor" << endl; // compiler won't initialize any data of 'a' } private: A a; }; int main() { Base base; B b; C c; D d; return 0; }
Producción:
A Constructor A Constructor C Constructor A Constructor D Constructor
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA