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.
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)
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!
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!
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
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?
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
class Cat: Animal
{
public Cat() {
Meow();
}
public void Meow()
{
}
}