红莲教主 发表于 2016-5-12 11:18:04

抽象方法

抽象方法一般格式virtual void run() = 0 ;
基类析构函数要加virtual,否则会有警告
如果基类有抽象函数(也叫纯虚函数),那么子类一定要实现该方法,否则会报错

#include <iostream>

using std::cout;
using std::endl;
using std::string;

class Animal
{
public:
    Animal(string name);
    virtual ~Animal();
    virtual void run() = 0 ;
protected:
    string name ;
};

Animal::Animal(string name)
{
    this->name = name ;
}

Animal::~Animal()
{

}

class Dog : public Animal
{
public:
    Dog(string name);
    ~Dog();
    virtual void run();
};

Dog::Dog(string name):Animal(name)
{

}
Dog::~Dog()
{

}
void Dog::run()
{
    cout<<"我叫"<<name<<",我跑步时乱蹦乱跳"<<endl;
}
int main()
{
    Dog* dog = new Dog("教主");
    dog->run();

    delete dog ;
    return 0;
}


页: [1]
查看完整版本: 抽象方法