1. ¨Cual es la declaracion de clase equivalente a esta declaracion de
estructura?
        struct boton{
          char *etiqueta;
          int codigo_activar;
        };
2. Dada la siguiente clase y declaracion de un objeto ¨Que sucede cuando se
intenta llamar a init()?
        class msg_arch{
          FILE *fp;
          char *nombre;
          int longreg;
          void init(int longr);
        };

        msg_arch f;

        f.init(80);             // ¨que sucede aqui?
3. ¨Cual es el error en la siguiente declaracion de clase?
        union float_bytes{
        private:
          char mantisa[3], char exponente;
        public:
          float num;
          char exp(void);
          char *mant(void);
        };
4. ¨Que esta mal en la siguiente definicion de clase?
        #include<string.h>
        struct buffer{
          char datos[255];
          int cursor;
          void iniciar(char *s);
          inline int long(void);
          char *contenido(void);
        };
        void buffer::iniciar(char *s)
        {
          strcpy(datos,s);cursor=0;
        }
        char *buffer::contenido(void)
        {
          if(long()) return datos; else return 0;
        }
        inline int buffer::long(void) {return cursor;}
5. Dado el suguiente programa ¨es legal la sentencia main()?
        class punto{
        public:
          int x, int y;
          punto(int x1, int y1){x=x1;y=y1;}
        };
        main()
        {
          punto(25,15);         //¨es legal esta sentencia?
        }
6. Clasificar los siguientes constructores.
        a. rect::rect(int a,int h);
        b. nodo:nodo(void);
        c. calculadora::calculadora(float *val i=0.0);
        d. cadena::cadena(cadena &c);
        e. abc::abc(float f);
7. Dadas las siguientes declaraciones de clase y array ¨Por que no se puede
construir el array?
        class punto{
        public:
          int x,y;
          punto(int a,int b){x=a;y=b;}
        };
        punto poligono[5];              //¨es valida esta sentencia?
8. Si cambia el constructor del ejercicio 7 por un constructor por defecto,
¨Se puede construir, en este caso el array?
        class punto{
        public:
          int x,y;
          punto(int a=0,int b=0){x=a;y=b;}
        };
        punto poligono[5];              //¨es valida esta sentencia?
9. ¨Cual es el constructor que se llama en las siguientes declaraciones?
        class prueba_total{
        private:
          int num;
        public:
          prueba_total(void);      {num=0;}
          prueba_total(int n=0);   {num=n;}
          int valor(void);         {return num;}
        };
        prueba_total prueba;
10. Dado el siguiente programa en C++, escribir un programa en C equivalente.
        #include <stdio.h>
        class operador{
        public:
          float mamoria;
          operador(void);
          ~operador(void);
          float sumar(float f);
        };
        operador::operador(void)
        {
          printf("Activar maquina operador\n");
          memoria=0.0;
        }
        operador::~operador(void)
        {
          printf("Desactivar maquina operador\n");
        }
        float operador::sumar(float f)
        {
          memoria+=f;
          return memoria;
        }
        void main()
        {
          operador O;
          O.sumar(10.0);
          O.sumar(30.0);
          O.sumar(3.0);
          printf("La solucion es %f \n",O.memoria);
        }
11. Crear una clase llamada hora que tenga miembros datos separados de tipo
int para horas, minutos y segundos. Un constructor inicilizara estos datos a
0, y otro los inicializara a valores fijos. Una funcion miembro debera
visualizar la hora en formato 11:59:59. Otra funcion miembro sumara dos
objetos de tipo hora pasados como argumentos. Otra funcion incrementara
los segundos en una unidad. Una funcion principal main() creara dos objetos
inicializados y uno que no este inicializado. Sumar los dos valores
inicializados y dejar el resultado en el objeto no inicializado. Visualizar
el valor resultante. incrementar n veces el valor del ultimo objeto y
visualizarlo para cada incremento.
12. Se desea realizar una clase vector3d que permita manipular vectores de
tres componentes (coordenadas x,y,z) de acuerdo a las siguientes normas:
        - Solo posee una funcion constructor y es en linea
        - Tiene una funcion miembro "igual" que permite saber si dos vectores
          tienen sus componentes o coordenadas iguales (la declaracion de
          "igual" se realizara utilizando: a. transmision por valor, b.
          transmision por direccion, c. transmision por referencia).
13. Incluir en la clase vector3d del ejercicio anterior, una funcion miembro
denominada "mormamax" que permita obtener la norma mayor de dos vectores
(Nota: la norma de un vector v=x,y,z es x^2+y^2+z^2 o bien x*x+y*y+z*z).
14. Dise¤ar una clase vector3d que permita manipular vectores de 3
componentes (de tipo float) y que tenga una funcion constructor con valores
por defecto (0) y las funciones miembro suma (suma de dos vectores),
productoescalar (producto escalar de dos vectores v1:x1,y1,z1; v2=x2,y2,z2;
v1úv2=x1*x2+y1*y2+z1*z2).
15. Dada la siguiente clase punto:
        class punto{
          int x,y;
        public:
          punto(int abs=0,int ord=0){x=abs;y=ord;}
        };
Escribir una funcion independiente "visualizar", amiga de la clase punto, que
permita visualizar las coordenadas de un punto. Se proporcionara por separado
un archivo fuente que contenga la declaracion (definicion) de punto y un 
archivo fuente que contiene la definicion de la funcion "visualizar".
Escribir un programa que cree un punto de clase automatica y un punto de
clase dinamica y que visualice las coordenadas.

