C++ 类和面向对象编程

创建一个类

#include <iostream>
#include <string>
class Dog{
    std::string name;
    int weight;

public:
    Dog();
    void setName(const std::string& dogsName);
    void setWeight(int dogsWeight);
    virtual void print() const;
    void bark() 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";
}

int main(){
    Dog myDog;
    myDog.setName("Barkley");
    myDog.setWeight(10);
    myDog.print();
    return 0;
}

output:
A dog has been constructed
Dog is Barkley and weights 10kg
Goodbye Barkley

继承


// 继承
class OwnedDog : public Dog{
public:
    void setOwner(const std::string& dogsOwner);
    void print() 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();
}

int main(){
    OwnedDog herdog;
    herdog.setOwner("White");
    herdog.setName("lucy");
    herdog.setWeight(20);
    herdog.print();
    return 0;
}

output:
A dog has been constructed
Dog is owned by White
Dog is lucy and weights 20kg
Goodbye lucy

参考:
learn C++ in y minutes

猜你喜欢

转载自blog.csdn.net/m0_37586991/article/details/88910608