unresolved external symbol "class BST bstree" (?bstree@@3VBST@@A)自己定义了一个BST类,二叉树.编译通过,LINK的这个错误是什么意思?

解决方案 »

  1.   

    1.LIB文件加了吗
    2.CPP文件是否在工程里
    3.RELEASE跟DEBUG设置是否一致
      

  2.   

    这些都没错.
    我好象发现哪里错了...麻烦看一下我这个源码用的对不对.
    首先我定义了一个类:
    class BST {
    struct Node {
    一些数据
    }* root;
    public: 一些函数
    };和其中的一个函数实现:
    void BST::intreading() {
    Node* k;
    Node* pre; k = root;
    pre = NULL;         省略一些操作,通过了编译语法没错.没通过链接也不会是逻辑错.
    }然后我在程序中使用这个类的实例
    static BST bstree(s);
    在另一个函数中调用上面的函数
    extern BST bstree;
    bstree.inthreading();我想问的是,我这个函数这样定义和使用有问题吗?  尤其是这个root,我在里面这么用对吗?
      

  3.   

    static BST bstree(s);
    --------------------------------
    你的BST类有带参构造函数吗?
      

  4.   

    带的。我实验把
    bstree.intreading();
    这句去掉就没有这个错误了,所以可能是这个函数有错误?
    我在网上搜索,有人有过类似的问题,他那个有人说是因为定义,声明,使用不统一造成的。不过我没太明白,已经通过编译了还会有这种问题...
    主要是(?bstree@@3VBST@@A)这个是什么意思?
      

  5.   


    ---
    然后我在程序中使用这个类的实例
    static BST bstree(s);           //这个变量定义和下面的使用不在一个/组文件中吗?
    在另一个函数中调用上面的函数
    extern BST bstree;
    bstree.inthreading();
    ---