我试图使用g ++运行我的C ++程序,但出现以下异常:
“用于ocl :: CRException的typeinfo”正在使用包含CRException类的ocl命名空间。.请帮助我。

这是包含OCL类的代码:

#ifndef VOIDSOFT_ADA2_LIND_HH

#define VOIDSOFT_ADA2_LIND_HH
#include <string>
#include <list>
#include <queue>
#include <map>
#include <ocl.h>
#include "threaded.hh"

using namespace std;
using namespace ocl;

class circuit;

class Lind: public Threaded
{
public:
    typedef int lookup_t;

private:
    OraConnection connection;
    pthread_mutex_t *done_m;
    queue<pthread_t> *q;
    lookup_t type;

public:
    circuit *c;
    Lind();
    ~Lind();

    void *run();

    map<string, pair<string, string> > *getnodes(string);

    bool connect();
    void disconnect();

private:
    circuit *getcircuitinfo(string, circuit *c = 0);
    void bindInStr(OraQuery &q, string arg, string bindvar, map<string, string> *properties);

    map<string, pair<string, string> > *node2name(string);
};

/* Lookup types */
namespace LindLookupTypes {
    /* Get overlying */
    const int OL = 0x001;
    /* Get underlying */
    const int UL = 0x002;
}
#endif /* VOIDSOFT_ADA2_LIND_HH */

最佳答案

这通常意味着您忘记在某个地方定义(实现)虚拟方法。检查是否已定义ocl::CRException的所有虚拟方法,并且定义它们的目标文件是否实际上已链接到您的代码。

如果没有帮助,请编辑答案并向我们显示CRException的代码。

08-26 09:06