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;
}