pat*_*ney 21 c++ virtual-functions pure-virtual
我现在正在课堂上学习C++,而且我不太熟悉纯虚函数.我知道它们稍后在派生类中概述,但是如果你要在派生类中定义它,为什么要将它声明为等于0?
Ste*_*dit 34
简而言之,它是使类抽象,因此无法实例化,但子类可以覆盖纯虚方法以形成具体类.这是在C++中定义接口的好方法.
任何包含纯虚方法的类都是抽象的,也就是说,它不能被实例化.抽象类对于定义子类应该共享的一些核心行为很有用,但允许(实际上需要)子类单独实现抽象.
抽象类的一个例子:
class Foo {
// pure virtual, must be implemented by subclasses
virtual public void myMethod() = 0;
// normal method, will be available to all subclasses,
// but *can* be overridden
virtual public void myOtherMethod();
};
Run Code Online (Sandbox Code Playgroud)
每个方法都是抽象的类可以用作接口,要求所有子类通过实现其中包含的所有方法来符合接口.
接口示例:
class Bar {
// all method are pure virtual; subclasses must implement
// all of them
virtual public void myMethod() = 0;
virtual public void myOtherMethod() = 0;
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35979 次 |
| 最近记录: |