5/11/97:
A) Teoría
Herencia Agregación Asociación USUARIO->TELEFONO ORDENADOR->DISQUETERA DISPOSITIVO->DISQUETERA TABLA->"TUPLA" TABLA->"JOIN" PROGRAMA->VARIABLE PAGINA "WEB"->MODEM OBJETO->ATRIBUTO TEMPLATE->CLASE PRISMA->POLIGONO
B) Problemas de C++
#include class Complex { double real, imag; public: Complex (double r=0., double i=0.) { real = r; imag = i; } void print () { printf ("(%g,%g)", real, imag);} }; Complex operator + (Complex c1, Complex c2) { Complex temp (c1.real + c2.real, c1.imag + c2.imag); return temp; } Complex operator - (Complex c1, Complex c2) { Complex temp (c1.real - c2.real, c1.imag - c2.imag); return temp; } Complex operator * (Complex c1, Complex c2) { Complex temp; temp.real = c1.real*c2.real+c1.imag*c2.imag; temp.imag = c1.real*c2.imag+c2.real*c1.imag; return temp; } // programa principal int main(void) { Complex a (3.), b (2., 2.); Complex c=a+b, d=b+3, e=3-b, f=c*b+e; Complex *ac = Complex[5] new; ac[0]=a+1; for (int i=1; i<5; i++) ac[i]=ac[i-1]+b; printf ("a = "); a.print (); printf ("\n"); printf ("b = "); b.print (); printf ("\n"); printf ("c = "); c.print (); printf ("\n"); printf ("d = "); d.print (); printf ("\n"); printf ("e = "); e.print (); printf ("\n"); printf ("f = "); f.print (); printf ("\n"); for (int i=0; i<5; i++) printf ("ac[%d] = ",i); ac[i].print (); printf ("\n"); return 0; }
Herencia Agregación Asociación USUARIO->TELEFONO X ORDENADOR->DISQUETERA X DISPOSITIVO->DISQUETERA X TABLA->"TUPLA" X TABLA->"JOIN" X PROGRAMA->VARIABLE X PAGINA "WEB"->MODEM X OBJETO->ATRIBUTO X TEMPLATE->CLASE X PRISMA->POLIGONO X
temp.real = c1.real*c2.real-c1.imag*c2.imag;
Complex *ac = new Complex[10];
a = (3,0) b = (2,2) c = (5,2) d = (5,2) e = (1,-2) f = (7,12) ac[0] = (4,0) ac[1] = (6,2) ac[2] = (8,4) ac[3] = (10,6) ac[4] = (12,8)
#include "Complex.h" template <class T> class Vector { T *elements; unsigned int size; public: Vector (unsigned int size) { this->size = size; elements = new T[size]; } ~Vector () { delete [] elements; } class IndexError { unsigned int index, size; public: IndexError (unsigned int i, unsigned int s) { index = i; size = s; } }; T operator [](unsigned int index) throw (IndexError) { if (index<size) return elements[index]; IndexError ie (index, size); throw (ie); } }; void main() { Vector<int> vi(10); Vector<double> *pvd = new Vector<double>(10); Vector<Complex> vc(10); . . . }