0

我在 C++ 中使用虚函数有一个小问题

我有一个 B 类,它扩展了 A 类。

Class A{
  virtual function 1 // does nothing 
  virtual function 2 // does nothing
}

class B : public class A {
  function 1 { does some thing }
  function 2 { does some thing }
}

我有另一个类实现

class implement {

  B b;
  A *a = &B;
  a.function 1();
  a.function 2();
}

使用 GCC 编译器编译时,此代码在编译时会出现以下错误

对函数 1 和函数 2 的未定义引用。

请帮我解决这个问题提前谢谢

4

1 回答 1

5

在 C++ 中,仅允许在没有函数定义的情况下存在纯虚函数。
在您的代码中,您没有任何纯虚函数。纯虚函数是在声明中有一个=0
例如:

virtual void doSomething()=0;

基类中的virtual成员函数(function1()function2()A 必须有定义,因为它们不是纯虚函数。您没有提供他们的定义,因此链接器适当地抱怨缺少定义。

undefined reference to function 1 and function 2
于 2013-02-23T18:39:01.647 回答