相关疑难解决方法(0)

在构造函数中调用虚函数

假设我有两个C++类:

class A
{
public:
  A() { fn(); }

  virtual void fn() { _n = 1; }
  int getn() { return _n; }

protected:
  int _n;
};

class B : public A
{
public:
  B() : A() {}

  virtual void fn() { _n = 2; }
};
Run Code Online (Sandbox Code Playgroud)

如果我写下面的代码:

int main()
{
  B b;
  int n = b.getn();
}
Run Code Online (Sandbox Code Playgroud)

人们可能期望将n其设置为2.

事实证明,n设置为1.为什么?

c++ constructor overriding virtual-functions

220
推荐指数
6
解决办法
9万
查看次数

"纯虚函数调用"崩溃来自何处?

我有时会注意到计算机崩溃的程序出现错误:"纯虚函数调用".

当无法创建抽象类的对象时,这些程序如何编译?

c++ polymorphism virtual-functions pure-virtual

104
推荐指数
4
解决办法
9万
查看次数