Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Blacko_93 en 15 Junio 2012, 23:30 pm



Título: Consulta 2 programas.
Publicado por: Blacko_93 en 15 Junio 2012, 23:30 pm
Buenas, tengo una consulta sobre 2 programas, que la verdad no se cual es el error que tienen.. les paso el codigo.

1ro:
Código:
class Animal
{
public:
    void Eat();
    void Sleep();
};

class Cat:public Animal
{
public:
    void Meow();
};

class Dog: public Animal
{
public:
    void Bow_Wow();
};

int main()
{
    Dog d; Cat c;

    Animal *animals[256];

    for(int i=0; i<256; i++)
    {
        if( i % 2 )
            animals[i] = (Animal*)&d;
        else
            animals[i] = (Animal*)&c;
    }
    for(int i=0; i<256; i++)
     delete animals[i];
}

2do:
Código:
#include <iostream>
    class A
    {
        public:
        int normal;
        A(){normal=0;}
        ~A(){normal=1;}
    };
    class B: public A
    {
        public:
        int *p;
        B(){p=new int;}
        ~B(){delete p;}
    };
int main()
{
    A *clasa=new B();
    delete clasa;
}

Ninguno hace nada en particular, pero estoy aprendiendo todo el tema de clases y objetos.

Desde ya muchisimas gracias al que me pueda ayudar.


Título: Re: Consulta 2 programas.
Publicado por: Pablo Videla en 15 Junio 2012, 23:40 pm
inicioclase{

finclase}

no se terminan los bloques con ";" a no ser que estes llamando a algo como metodo();

pero en su implementacion no se usa asi.
se usas asi.
metodo(){
aqui hacen algo
}

espero haber sido claro,  saludos.

(Almenos la programaciňn que conozco es asi, acabo de darme cuenta que estoy en c y c++ xD)


Título: Re: Consulta 2 programas.
Publicado por: Blacko_93 en 15 Junio 2012, 23:52 pm
Muchas gracias por la respuesta!, igualmente, aparte del ; no entendi muy bien, cual seria el error en estos 2 programas. ya que pongo metodo(){y aca algo}
Un saludo!


Título: Re: Consulta 2 programas.
Publicado por: Pablo Videla en 15 Junio 2012, 23:56 pm
Muchas gracias por la respuesta!, igualmente, aparte del ; no entendi muy bien, cual seria el error en estos 2 programas. ya que pongo metodo(){y aca algo}
Un saludo!


Código
  1.  
  2. class Animal
  3. {
  4. public Animal(){
  5.    Eat();// aqui llamas a metodos que no existen le saque void
  6.    Sleep();// aqui igual y no es la forma le saque void
  7. }
  8. public void Eat(){ // aca creo el metodo que no existia
  9. //aqui deberia comer xD
  10. }
  11.  
  12. public void Sleep(){
  13. //aqui duerme xD
  14. }
  15. }
  16.  
  17. class Cat: Animal /* supongo que es herencia y extiende*/
  18. {
  19. public Cat(){
  20.    void Meow();
  21. }
  22. }
  23.  
  24. class Dog: Animal
  25. {
  26. public Dog(){
  27.    Bow_Wow();//aqui llama al metodo Bow_Wow()
  28. }
  29. public void Bow_Wow(){
  30. //Aqui deberia imprimir wow ow xD
  31. }
  32. }
  33.  
  34. int main()
  35. {
  36.    Dog d; Cat c;
  37.  
  38.    Animal *animals[256];
  39.  
  40.    for(int i=0; i<256; i++)
  41.    {
  42.        if( i % 2 )
  43.            animals[i] = (Animal*)&d;
  44.        else
  45.            animals[i] = (Animal*)&c;
  46.    }
  47.    for(int i=0; i<256; i++)
  48.  /*   delete animals[i]; aqui no se que quieres decir*/
  49. }
  50.  

Me referia a que debes aprender la estructura de clases y llamadas a metodos y aprender a crear constructores . Revisa que tal.

Estoy modificando el codigo de a poco xD

---
Con lo que hice arregla cat XD


Título: Re: Consulta 2 programas.
Publicado por: Blacko_93 en 16 Junio 2012, 00:58 am
class Cat: Animal
{
public Cat() {
    void Meow();
}
public void Meow()
{
}

}

Te referis a arreglarla asi?
El otro codigo tenes idea cual sera el problema? La misma forma de declarar las clases?


Título: Re: Consulta 2 programas.
Publicado por: Pablo Videla en 16 Junio 2012, 03:27 am
class Cat: Animal
{
public Cat() {
    void Meow();
}
public void Meow()
{
}

}

Te referis a arreglarla asi?
El otro codigo tenes idea cual sera el problema? La misma forma de declarar las clases?
Estan malas las formas de declarar las clases y metodos y la herencia, fijate como lo arregle, lo del gato solo falta quitar el void desd el constructor ya que lo llamas ahi

osea quedaria asi la clase cat

Código
  1. class Cat: Animal
  2. {
  3. public Cat() {
  4.    Meow();
  5. }
  6. public void Meow()
  7. {
  8.  
  9. }
  10.  
  11. }
  12.