C++链接错误
问题描述:
我有具有以下行的文件A.cpp
:C++链接错误
#include"B.h"
int main(int argc, char **argv)
{
...
char *input_file = *argv;
B *definition = new B(input_file);
...
}
在B.h
,我有以下几点:
class B
{
public:
// Constructors
B(void);
B(const char *filename);
...
}
当我编译,我得到以下错误:undefined reference to 'B::B(char const*)'
有关如何解决的任何建议?
谢谢。
答
您需要为B::B(char const *)
定义。您仅提供了B::B(char const *)
的声明,并且链接器抱怨说它实际上找不到该功能。
答
它看起来像你指定的函数头,但从来没有实际编写函数的主体。
您需要定义函数I.E.
B::B(const char *filename){
// Do stuff
}
in B.cpp。
你的问题与const的正确性没有任何关系。
-1您是否定义了该功能? – 2010-04-30 16:36:57