C++ 在C+中使用虚函数+;
我在C语言中使用虚函数时遇到了一个小问题++ 我有一个B类,它扩展了a类C++ 在C+中使用虚函数+;,c++,function,virtual,C++,Function,Virtual,我在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
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的引用
请帮我解决这个问题
在C++中,事先感谢< P>,只允许纯虚拟函数不存在函数定义。 在代码中没有任何纯虚拟函数。纯虚拟函数是在声明中具有
=0
的函数。例如:
virtual void doSomething()=0;
基类A
中的virtual
成员函数(function1()
和function2()
)必须具有定义,因为它们不是纯虚拟的。您没有提供它们的定义,因此链接器会适当地抱怨缺少定义
undefined reference to function 1 and function 2
在C++中,只有纯虚拟函数才允许在没有函数定义的情况下存在。 在代码中没有任何纯虚拟函数。纯虚拟函数是在声明中具有
=0
的函数。例如:
virtual void doSomething()=0;
基类A
中的virtual
成员函数(function1()
和function2()
)必须具有定义,因为它们不是纯虚拟的。您没有提供它们的定义,因此链接器会适当地抱怨缺少定义
undefined reference to function 1 and function 2
请输入真实代码,这个例子有大约243处错误。这个错误似乎与
虚拟
函数没有任何关系。给我们看一些可编译的示例代码。请看真实代码,这个示例有大约243处错误。错误似乎与虚拟
函数没有任何关系。向我们展示一些可编译的示例代码。