作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在子类中的父类中实现一个纯虚函数。
当我尝试在 eclipse 中实例化子类时,它说
The type 'derived' must implement the inherited pure virtual method 'Base::compareTo'
我很确定我这样做了。我的基类是..
基础.h
#ifndef BASE_H_
#define BASE
class Base{
public:
Base();
virtual ~Base();
virtual int compareTo(void* compare)=0;
};
#endif /* BASE*/
然后是我的derived.h
#ifndef DERIVED_H_
#define DERIVED_H_
#include "Base.h"
class Derived : public Base {
public:
int x;
Derived(int y);
virtual ~Derived();
int compareTo(void* compare);
};
#endif /* DERIVED_H_ */
派生.cpp
#include "Derived.h"
#include "Base.h"
Derived::Derived(int y) {
// TODO Auto-generated constructor stub
x=y;
}
Derived::~Derived() {
// TODO Auto-generated destructor stub
}
int Derived::compareTo(void* compare) {
Derived* compared;
int result=0;
if(compared=dynamic_cast<Derived*>(compare))
{
if(x<compared->x)
{
result=-1;
}
else
{
result=1;
}
}
return result;
}
最佳答案
我假设此消息来自 eclipses 代码分析器,而不是来自您的编译器。代码分析器错了,你是对的。您已经从 Derived
中的基类正确实现了纯虚方法。如果您尝试实例化 Derived,代码应该可以编译。
您的 CDT 版本可能低于 8.2.1?如果是这样,您可能会遇到 this bug这应该在 8.2.1 中修复。
但是您的代码中还有另一个错误。你不能 dynamic_cast 空指针。
关于c++ - 在子类中实现纯虚方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22275270/
我有一个特别的问题想要解决,我不确定是否可行,因为我找不到任何信息或正在完成的示例。基本上,我有: class ParentObject {}; class DerivedObject : publi
在我们的项目中,我们配置了虚 URL,以便用户可以在地址栏中输入虚 URL,这会将他们重定向到原始 URL。 例如: 如果用户输入'http://www.abc.com/partner ',它会将它们
我是一名优秀的程序员,十分优秀!