我在一个工程中建了一个CSimpleStringList类,
然后在另一个类RapidFinder中想要创建一个CSimpleStringList类的对象,却提示编译错误unresolved external symbol "public: __thiscall CSimpleStringList::CSimpleStringList(int)" (??0CSimpleStringList@@QAE@H@Z)
我已经加载了头文件#include "simplestringlist.h"请问高手这是怎么回事?
/*CSimpleStringList类头文件*/class CSimpleStringList  
{
public:
CSimpleStringList(int nNextOffset = 0); //inline
void Construct(int nNextOffset); //inline
.....别的成员变量及函数
}
/*RapidFinder.cpp类头文件*/
#include "simplestringlist.h"
class RapidFinder  
{
public:
.........
CSimpleStringList m_listDir;
         .........
}

解决方案 »

  1.   

    加一个默认的构造函数看看
    CSimpleStringList();你把这些函数定义成内联啊,确认有这个必要吗?内联的话,函数要求函数体不能有太复杂的结构,如switch case不能放进里面
      

  2.   

    呵呵,看错了你没有定义inline,为何在后面注释inline啊搞砣不清
      

  3.   

    确实是内联函数,函数实现在cpp文件里。因为函数体简单,这个类用到的频率较高。所以定义成内联函数了。不过这个好像跟我的错误没有关系啊××
      

  4.   

    是link的错误
    编译没有问题,说明相应头文件是有了
    但link出问题,说明找不到函数的相应实现。
    要不就是你把cpp删了^_^要不就是使用外部的lib,但lib没有加入工程
      

  5.   

    我遇到的情况也是lib没有加入到工程里,加入就应该好了。
      

  6.   

    把.h和.cpp文件加入到你对应的工程就可以了
      

  7.   

    缺少函数实现文件,就是库文件,大多数情况下也就是.cpp文件
      

  8.   

    貌似#include的文件要放在同一个目录下面的
    你自己看看是不是这个问题
    mfc还是大二学的 寒~
      

  9.   

    类函数实现了么?你把该类的头文件和CPP文件都放到你工程目录下边,然后加到当前工程中