重载是对方法的重写,通过不同的传参,能够达到不覆盖原来的方法,与原来方法共存的目的

#include <iostream>
#include <string>
//吃的参数不同,调用对应的函数
class Animal
{
public:
    Animal(std::string theName);
    void eat();
    void eat(int eatCount);
    void sleep();

private:
    std::string name;
};


class Pig:public Animal
{
public:
    Pig(std::string theName);
    void climb();
};

Animal::Animal(std::string theName)
{
    name = theName;
}

void Animal::eat()
{   
    std::cout<<"吃(未重载)"<<std::endl;
}

void Animal::eat(int eatCount)
{   
    std::cout<<"吃了(重载)"<< eatCount <<"碗"<<std::endl;
}

Pig::Pig(std::string theName):Animal(theName)
{

}

void Pig::climb()
{
    std::cout<<"小猪爬树"<<std::endl;
}

int main()
{
    Pig pig("小猪");
    pig.climb();
    pig.eat();

    pig.eat(15);
    return 0;
}