作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚遇到以下 C++ 编译器错误:
no matching function for call "EPTDerivedException::HandleClass( BaseClass& )"
candidates are: void EPTDerivedException::HandleClass( DerivedClass )
我无法解释这个,因为应该有一个函数 HandleClass( BaseClass )。这是调用代码:
BaseClass oBase;
EPTDerivedException* pException2 = new EPTDerivedException;
pException2->HandleClass( oBase );
这是 EPTDerivedException 的代码:
class EPTDerivedException : public EPTException
{
public:
EPTDerivedException();
// generic function
void HandleClass( DerivedClass oClass ) { Q_UNUSED(oClass); }
};
对于基类:
class EPTException
{
public:
EPTException( QString strName );
// specialized function
void HandleClass( BaseClass oBase ) { Q_UNUSED(oBase); }
private:
QString m_strName;
};
奇怪的是,当我重新编译 (make clean; make) 代码时,我收到了错误消息。如果我在调用代码 (main.cpp) 中添加一个空格“”——之后的编译是成功的——我不知道为什么……
非常感谢,
查理
PS:我将 gcc 4.4.5 与 Debian Squeeze 一起使用,qt-creator 作为 IDE 与 qt 4.6 - 但这个问题与 Qt 无关。
最佳答案
我不确定您为什么认为应该有一个 EPTDerivedException::HandleClass( BaseClass oBase )
函数。没有这样的声明。
也许您需要将 using EPTException::HandleClass;
添加到 EPTDerivedException
中?
关于c++ - 没有匹配功能 - 专门的签名隐藏通用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3976516/
我有一个带有模板函数的基类,该函数具有通用模板类型和专用版本。 #ifndef BASE_CLASS #define BASE_CLASS #include using namespace std;
我有这个 3D vector 模板 template class Vec3TYPE{ public: union{ struct{ TYPE x,y,z; }; struct{ TY
我是一名优秀的程序员,十分优秀!