-1
四处错误,但不理解的行为:“只有非静态成员函数可以是虚拟的”
class A {
virtual void foo() = 0;
virtual int bar();
}
在这里,我得到错误“唯一的非静态成员函数可以是虚拟的” 我给实施为bar();
。
四处错误,但不理解的行为:“只有非静态成员函数可以是虚拟的”
class A {
virtual void foo() = 0;
virtual int bar();
}
在这里,我得到错误“唯一的非静态成员函数可以是虚拟的” 我给实施为bar();
。
错误消息是有误导性的,问题是bar
没有返回类型,这是非法的。
静态成员在类的所有实例之间共享(静态),而虚拟函数则暴露动态行为并允许根据对象类型执行不同的执行。所以拥有静态虚拟功能是没有意义的。
除了你提供的代码没有静态功能,所以请在这里发布完整版。
输入错误,返回值为int – Sijith
@Sijith所以你的代码是'virtual int bar();'? – 0x499602D2
@Sijith错字是'virutal'而不是'virtual' .... –