Clases
8. Punteros a Clases
Un objeto o instancia de una clase puede ser apuntado por un puntero.
El puntero a un objeto DEBE ser del mismo "TIPO" , ahora sabemos que se debe decir CLASE.
La forma de utilizarse es la misma que la vista para estructuras.
#include <iostream>
using namespace std;
class Rectangulo {
int ancho, alto;
public:
Rectangulo(int x, int y) : ancho(x), alto(y) {}
int area(void) { return ancho * alto; }
};
int main() {
Rectangulo obj (3, 4);//instancio objeto obj
Rectangulo * foo, * bar, * baz;//punteros
foo = &obj;//el puntero foo apunta al objeto obj
bar = new Rectangulo (5, 6);//este es otro puntero que apunta a otro objeto sin nombre
baz = new Rectangulo[2] { {2,5}, {3,6} };//este es un arreglo de punteros que apuntan a otro objeto sin nombre
cout << "Area del objeto: " << obj.area() << '\n';
cout << "Area del puntero *foo: " << foo->area() << '\n';
cout << "Area del puntero *bar: " << bar->area() << '\n';
cout << "Area del la instancia baz[0]:" << baz[0].area() << '\n';
cout << "Area de la instancia baz[1]:" << baz[1].area() << '\n';
delete bar;
delete[] baz;
return 0;
}