Un ejemplo típico de agregación es el de la línea
que tiene un punto de comienzo y un punto de finalización:
#include <iostream>
class Punto {
private:
int x;
int y;
public:
Punto(int a, int b) : x(a), y(b)
{}
void dibuja()
{ std::cout << x << ',' << y << std::endl;}
};
class Linea {
private:
Punto * p1;
Punto * p2;
public:
Linea(int a, int b, int c, int d)
{
p1 = new Punto( a, b );
p2 = new Punto( c, d );
}
~Linea()
{ delete p1;
delete p2;
}
void dibuja()
{ p1->dibuja();
std::cout << " a ";
p2->dibuja();
}
};
using namespace std;
int main()
{
Linea l( 10, 10, 100, 100 );
l.dibuja();
}