类继承练习题一

类继承练习题一

1、定义一个基类Animal,它包含两个私有数据成员,一个是string,存储动物的名称(例如"Fido"或"Yogi"),另一个是整数成员weight,包含该动物的重量(单位是磅)。该类还包含一个公共成员函数who(),它可以显示一个消息,给出Animal对象的名称和重量。把Animal用作公共基类,派生两个类Lion和Aardvark。再编写一个main()函数,创建Lion和Aardvark对象("Leo",400磅;"Algernon",50磅)。为派生类对象调用who()成员,说明who()成员在两个派生类中是继承得来的。

Animal.h
// Animal.h
// Animal clas and classes derived from Animal
#ifndef ANIMAL_H
#define ANIMAL_H
#include 
<string>
using std::string;

class Animal {
public:
    Animal(
string theName, int wt);    // Constructor
    void who() const;                        // Display name and weight

private:
    
string name;    // Name of the animal
    int weight;        // Weight of the animal
};

class Lion: public Animal {
public:
    Lion(
string theName, int wt): Animal(theName, wt) {}
};

class Aardvark: public Animal {
public:
    Aardvark(
string theName, int wt): Animal(theName, wt) {}
};

#endif

Animal.cpp
// Animal.cpp
// Implementations of the Animal class and classes derived from Animal

#include 
"Animal.h"
#include 
<iostream>
#include 
<string>
using std::cout;
using std::endl;
using std::string;

// Constructor
Animal::Animal(string theName, int wt): name(theName), weight(wt) { }

// Identify the animal
void Animal::who() const {
    cout 
<< "\nMy name is " << name << " and I weight " << weight << endl;
}

main.cpp
// main.cpp 
#include <iostream>
#include 
"Animal.h"
using std::cout;
using std::endl;


void main() {
    Lion lion1(
"Leo"400);
    Aardvark aardvark1(
"Algernon"50);

    lion1.who();
    aardvark1.who();
}



你可能感兴趣的:(类继承练习题一)