#include<iostream>#include<string>
class Dog{
std::string name;int weight;
public:Dog();voidsetName(const std::string& dogsName);voidsetWeight(int dogsWeight);
virtual voidprint()const;voidbark()const{std::cout<<name<<" barks\n";}
virtual ~Dog();};
Dog::Dog(){
std::cout<<"A dog has been constructed\n";}void Dog::setName(const std::string &dogsName){
name=dogsName;}void Dog::setWeight(int dogsWeight){
weight=dogsWeight;}void Dog::print()const{
std::cout<<"Dog is "<<name<<" and weights "<<weight<<"kg\n";}
Dog::~Dog(){
std::cout<<"Goodbye "<<name<<"\n";}intmain(){
Dog myDog;
myDog.setName("Barkley");
myDog.setWeight(10);
myDog.print();return0;}
output:
A dog has been constructed
Dog is Barkley and weights 10kg
Goodbye Barkley
继承
// 继承
class OwnedDog : public Dog{
public:voidsetOwner(const std::string& dogsOwner);voidprint()const override;
private:
std::string owner;};void OwnedDog::setOwner(const std::string &dogsOwner){
owner=dogsOwner;}void OwnedDog::print()const{
std::cout<<"Dog is owned by "<<owner<<"\n";
Dog::print();}intmain(){
OwnedDog herdog;
herdog.setOwner("White");
herdog.setName("lucy");
herdog.setWeight(20);
herdog.print();return0;}
output:
A dog has been constructed
Dog is owned by White
Dog is lucy and weights 20kg
Goodbye lucy