【问题标题】:What does `= 0` mean in the decalartion of a pure virtual function? [duplicate]`= 0` 在纯虚函数的声明中是什么意思? [复制]
【发布时间】:2011-04-08 10:31:27
【问题描述】:

可能的重复:
C++ Virtual/Pure Virtual Explained
What's the difference between virtual function instantiations in c++
Why pure virtual function is initialized by 0?

这是某人给我的某个类声明中的一个方法。而且我不知道'..=0'是什么意思。这是什么?

virtual void Print() const = 0;

【问题讨论】:

  • 问题的标题根本没有描述性。

标签: c++ pure-virtual


【解决方案1】:

= 0 使函数 pure virtual,将类呈现为 abstract class

抽象类基本上是一种接口,派生类需要实现才能实例化。但是,还有更多内容,它是 C++ 中面向对象编程的一些基础知识。如果你不知道这些,你需要回到课本上去阅读。不了解它们就无法前进。

也就是说,请参阅 this related question,了解什么是虚函数和纯虚函数。与往常一样,C++ FAQ 是解决此类问题的绝佳资源。

【讨论】:

    【解决方案2】:

    这意味着虚函数是纯的,这意味着你不能这样调用它:该函数没有任何代码,因此= 0。只有通过派生类并覆盖函数,您才能调用它。纯虚函数的类不能被实例化,所以在某些语言中称为抽象类、接口。

    【讨论】:

      【解决方案3】:

      基本上,这意味着该函数没有代码。这意味着您不能使用此类的实例。相反,它只能是一个基类。

      【讨论】:

      • 不完全正确。这意味着该函数没有可以“默认”调用的代码——派生类需要覆盖它,但允许调用基类提供的定义。
      猜你喜欢
      • 2012-03-05
      • 1970-01-01
      • 2011-03-09
      • 2015-12-20
      • 1970-01-01
      • 2019-10-23
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      相关资源
      最近更新 更多