first off, thank you to the people of this forum for helping me, but it seems i ran into another problem! i have commented my questions.
from listing 12-4.h
#include <iostream>
using namespace std;
enum BREED { GOLDEN, CAIRN, DANDIE, SHETLAND, DOBERMAN, LAB };
class Mammal
{
public:
Mammal();
Mammal(int age);
virtual ~Mammal();
int GetAge() const { return itsAge; }
void SetAge(int age) { itsAge = age; }
int GetWeight() const { return itsWeight; }
void SetWeight(int weight) { itsWeight = weight; }
void Speak() const { cout << "Mammal sound!\n"; }
void Sleep() const { cout << "shhh. I'm sleeping.\n"; }
protected:
int itsAge;
int itsWeight;
};
class Dog : public Mammal
{
public:
Dog();
Dog(int age);
Dog(int age, int weight);
Dog(int age, BREED breed);
Dog(int age, int weight, BREED breed);
virtual ~Dog();
BREED GetBreed() const { return itsBreed; }
void SetBreed(BREED breed) { itsBreed = breed; }
void WagTail() const { cout << "Tail wagging...\n"; }
void BegForFood() const { cout << "Begging for food...\n"; }
private:
BREED itsBreed;
};
Mammal::Mammal():
itsAge(1),
itsWeight(5)
{
cout << "Mammal constructor...\n";
}
Mammal::Mammal(int age):
itsAge(age),
itsWeight(5)
{
cout << "Mammal(int) constructor...\n";
}
Mammal::~Mammal()
{
cout << "Mammal destructor...\n";
}
Dog::Dog():
Mammal(),
itsBreed(GOLDEN)
{
cout << "Dog constructor...\n";
}
Dog::Dog(int age):
Mammal(age),
itsBreed(GOLDEN)
{
cout << "Dog(int) constructor...\n";
}
Dog::Dog(int age, int weight):
Mammal(age),
itsBreed(GOLDEN)
{
itsWeight = weight;
cout << "Dog(int, int) constructor...\n";
}
Dog::Dog(int age, int weight, BREED breed):
Mammal(age),
itsBreed(breed)
{
itsWeight = weight;
cout << "Dog(int int, BREED) constructor...\n";
}
Dog::Dog(int age, BREED breed):
Mammal(age),
itsBreed(breed)
{
cout << "Dog(int Breed) constructor...\n";
}
Dog::~Dog()
{
cout << "Dog destructor...\n";
} //i tried this to try to get this destructor to show, but it didn't work
//how do i get this to show, i've tried the pointers, but
and for listing 12-4.cpp
#include "listing 12-4.h"
/*
Mammal::~Mammal()
{
cout << "Mammal destructor...\n";
}
Dog::~Dog()
{
cout << "Dog destructor...\n";
}
*/
//i commented this out to avoid ambiguous invocation
int main()
{
/*
Dog *fido = new Dog;
Dog *rover = new Dog;
Dog *buster = new Dog;
Dog *yorkie = new Dog;
Dog *dobbie = new Dog;
rover->SetAge(5);
buster->SetAge(6);
buster->SetWeight(8);
yorkie->SetAge(3);
yorkie->SetBreed(GOLDEN);
dobbie->SetAge(4);
dobbie->SetWeight(20);
dobbie->SetBreed(DOBERMAN);
fido->Speak();
rover->WagTail();
cout << "Yorkie is " << yorkie->GetAge() << " years old\n";
cout << "Dobbie weighs ";
cout << dobbie->GetWeight() << " pounds\n";
*/
Dog fido;
Dog rover(5);
Dog buster(6,8);
Dog yorkie(3,GOLDEN);
Dog dobbie(4,20,DOBERMAN);
fido.Speak();
rover.WagTail();
cout << "Yorkie is " << yorkie.GetAge() << " years old\n";
cout << "Dobbie weighs ";
cout << dobbie.GetWeight() << " pounds\n";
system("PAUSE");
return 0;
}
i need to know what i am doing wrong now...
gigabytes? HA! too small time! terrabytes, petabytes? fah, come on! exabytes, zettabytes? getting "warmer!" yottabytes, not even nonabytes! i'm talkin' doggabytes, thats my league!