c++ - programacion - ¿Qué agrega un compilador a una declaración de clase vacía?
miembros de una clase en programacion orientada a objetos (4)
Esta completo. Pero hay dos puntos que debes tener en cuenta:
- Es el operador copy =. Al igual que hay un constructor de copia , hay un operador de asignación de copias .
- Solo se proporcionan si realmente se usan.
Alguna explicación para 2:
struct A { private: A(); };
struct B : A { };
¡Esta bien! Proporcionar un constructor predeterminado estaría mal formado para "B", porque no podría llamar al constructor de la clase base. Pero el constructor predeterminado (y las otras funciones especiales) solo se proporciona (decimos que está implícitamente definido ) si realmente se necesita.
Supongamos, escribo
class A { };
El compilador debe proporcionar (según sea necesario)
- un constructor
- un destructor
- un constructor de copia
- = operador
¿Esto es todo lo que el compilador proporciona? ¿Hay adiciones o eliminaciones a esta lista?
Tu lista esta completa Esto es todo lo que está agregando.
La lista no está completa ............ Además de la mencionada CUATRO propiedades, hay un operador de dirección (&) método sobrecargado, que devuelve la dirección del objeto invocado, también se proporciona automáticamente por el compilador
Hay cinco propiedades:
constructor
copia constructor
incinerador de basuras
operador de asignación
el operador de referencia (&) - la dirección