Constructores
Constructor es un tipo de función el cual es invocada al momento de una instancia de un objeto, esta función es invocada desde la clase y pasada al objeto el cual se está creando la instancia. Esta función es muy similar a los métodos, la única excepción es el nombre el cual utiliza el cual es el mismo nombre que la clase. Los constructores son utilizado para pasar al objeto que estemos iniciando en el momento sus valores por defectos.
#include <iostream>
using namespace std;
class Book {
public:
long isbn;
string title;
string author;
int available;
Book(
long _isbn,
string _title,
string _author,
int _available) {
this->isbn = _isbn;
this->title = _title;
this->author = _author;
this->available = _available;
}
bool getCopy() {
if(available < 1) {
return false;
}
else {
available--;
return true;
}
}
};
int main()
{
Book book(97852670063, "1984", "George Orwell", 12);
if(book.getCopy()) {
cout << "Here, your copy." << endl;
cout << "Copy available: " << book.available << endl;
}
else {
cout << "I am afraind that book is not available." << endl;
}
return 0;
}
//-> Here, your copy.
//-> Copy available: 11
Destructor
Un destructor es una función similar al constructor el cual se ejecuta cada vez que un objeto queda fuera del enfoque o cuando la expresión de eliminación delete
se aplica a un puntero al objeto.
Un destructor tendrá exactamente el mismo nombre que la clase prefijada con una tilde ~
y no puede devolver un valor ni puede tomar ningún parámetro. Destructor puede ser muy útil para liberar recursos de memoria antes de salir del programa, como cerrar archivos, liberar memorias, etc.
#include <iostream>
using namespace std;
class Book {
public:
long isbn;
string title;
string author;
int available;
Book(
long _isbn,
string _title,
string _author,
int _available) {
this->isbn = _isbn;
this->title = _title;
this->author = _author;
this->available = _available;
}
~Book() {
cout << "Destructor called" << endl;
}
bool getCopy() {
if(available < 1) {
return false;
}
else {
available--;
return true;
}
}
};
int main()
{
Book book(97852670063, "1984", "George Orwell", 12);
return 0;
}
//-> Destructor called