#include <iostream>
#include <string.h>
char BREED[6][10] = { "YORKIE", "CAIRN", "DANDIE", "SHETLAND", "DOBERMAN", "LAB" };
class Mammal
{
public:
// constructors
Mammal(): age(2), weight(5) {}
~Mammal(){}
// accessors
int getAge() const { return age; }
void setAge(int newAge) { age = newAge; }
int getWeight() const { return weight; }
void setWeight(int newWeight) { weight = newWeight; }
// other methods
void speak() const { std::cout << "Mammal sound!\n"; }
void sleep() const { std::cout << "Shhh,I'm sleeping.\n"; }
protected:
int age;
int weight;
};
class Dog : public Mammal
{
public:
// constructors
Dog(){ strcpy(breed,BREED[0]); } // 对breed的赋值必须这样
~Dog() {}
// accessors // 将字符串常量地址返回,返回类型也必须是常量 char const *
char const* getBreed() const { std::cout << breed << "\n"; return breed; }
void setBreed(char *newBreed) { strcpy(breed,newBreed); }
// other methods
void wagTail() { std::cout << "Tail wagging '''\n"; }
void begForFood() { std::cout << "Begging for food ...\n"; }
private:
char breed[10];
};
int main()
{
Dog fido;
fido.getBreed();
fido.speak();
fido.wagTail();
std::cout << "Fido is " << fido.getAge() << " years old\n";
return 0;
}
注意:字符串的赋值方式 常量的返回类型