1718得票27回答
抽象方法和虚方法有什么区别?

抽象方法和虚方法有什么区别?在哪些情况下建议使用抽象或虚方法?哪种方法是最佳的? 抽象方法是没有实现的方法,必须在子类中实现,而虚方法有默认实现但可以被覆盖。如果希望强制子类实现特定方法,则应该使用抽象方法,如果希望提供默认实现并允许子类覆盖它,则应该使用虚方法。选择哪种方法取决于你的具体需...

1637得票28回答
为什么在C++中我们需要虚函数?

从我所了解的来看,虚函数是基类中的函数,你可以在其派生类中进行重写。 但是早些时候,在学习基本继承时,我能够在派生类中重写基类函数而不使用virtual。 我在这里漏掉了什么?我知道虚函数还有更多内容,而且似乎很重要,所以我想明确一下它到底是什么。

1478得票18回答
在构造函数中进行虚函数调用

我从ReSharper收到一个警告,说我的对象在构造函数中调用了虚成员。 为什么这样做会有问题?

415得票8回答
如果我重写了一个虚函数,我能调用基类的虚函数吗?

假设我有如下设置的类 Foo 和 Bar:class Foo { public: int x; virtual void printStuff() { std::cout << x << std::endl; } }; ...

386得票15回答
一个类成员函数模板可以是虚函数吗?

我听说C++类成员函数模板不能是虚函数。这是真的吗? 如果它们可以是虚函数,那么有什么情况下会使用这样的函数的例子呢?

325得票15回答
为什么在构造函数中调用虚成员函数是非虚函数调用?

假设我有两个C++类: class A { public: A() { fn(); } virtual void fn() { _n = 1; } int getn() { return _n; } protected: int _n; }; class B : pub...

304得票23回答
274得票6回答
“override”关键字只是用来检查是否重写虚方法吗?

据我了解,C++11中引入的override关键字仅用于检查实现的函数是否是覆盖基类中的virtual函数。 就这样吗?

268得票9回答
C++中派生类函数的"virtual"关键字,是否必要?

使用下面给出的结构定义...struct A { virtual void hello() = 0; }; 方法一:struct B : public A { virtual void hello() { ... } }; 方法二:struct B : public A { ...

258得票4回答
虚方法和抽象方法的区别

这里是来自MSDN的一些代码:// compile with: /target:library public class D { public virtual void DoWork(int i) { // Original implementation. ...