Consulta 2 programas.

Iniciado por Blacko_93, 15 Junio 2012, 23:30 PM

0 Miembros y 2 Visitantes están viendo este tema.

Blacko_93

Buenas, tengo una consulta sobre 2 programas, que la verdad no se cual es el error que tienen.. les paso el codigo.

1ro: 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: #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.

Pablo Videla

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)

Blacko_93

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!

Pablo Videla

#3
Cita de: 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!


Código (cpp) [Seleccionar]


class Animal
{
public Animal(){
   Eat();// aqui llamas a metodos que no existen le saque void
   Sleep();// aqui igual y no es la forma le saque void
}
public void Eat(){ // aca creo el metodo que no existia
//aqui deberia comer xD
}

public void Sleep(){
//aqui duerme xD
}
}

class Cat: Animal /* supongo que es herencia y extiende*/
{
public Cat(){
   void Meow();
}
}

class Dog: Animal
{
public Dog(){
   Bow_Wow();//aqui llama al metodo Bow_Wow()
}
public void Bow_Wow(){
//Aqui deberia imprimir wow ow xD
}
}

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]; aqui no se que quieres decir*/
}


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

Blacko_93

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?

Pablo Videla

Cita de: 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?
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 (cpp) [Seleccionar]

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

}

}