ConverterProxy *pthis;
ConverterProxy::ConverterProxy() {
pthis = this;
converter::callWhenUpdated(&CallBack);
}
void ConverterProxy::CallBack() {
pthis->updatedOutside();
}
ConverterProxy::~ConverterProxy() {
delete pthis;
}
部首:
class ConverterProxy
{
Q_OBJECT
public:
ConverterProxy();
~ConverterProxy();
static void CallBack();
signals:
void updatedOutside();
};
这会引发错误:undefined reference to 'vtable for ConverterProxy'
当我在构造函数的实现之后放置ConverterProxy *pthis;
时,该错误消失了。
这种奇怪情况的原因是什么?
答案 0 :(得分:2)
我不是QT的专家,但让我猜怎么解决你的问题。 您的代码中有一些与QT相关的内容:
Q_OBJECT
我不知道它包含什么;但是根据你的错误判断它可能会给你的课程添加一些虚拟功能,即使你没有。尝试从班上删除这些东西。
或者,如果您确实需要Q_OBJECT
位,请尝试从QObject继承:
class ConverterProxy: public QObject
{
Q_OBJECT
...
};
有一些文档,暗示Q_OBJECT
必须与QObject
的继承一起使用:http://developer.blackberry.com/native/reference/cascades/moc.html
答案 1 :(得分:1)
在析构函数中不要delete pthis
。你的物品已被摧毁。