2010-04-30 135 views
0

我有具有以下行的文件A.cppC++链接错误

#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*)'

有关如何解决的任何建议?

谢谢。

+1

-1您是否定义了该功能? – 2010-04-30 16:36:57

回答

2

您需要为B::B(char const *)定义。您仅提供了B::B(char const *)的声明,并且链接器抱怨说它实际上找不到该功能。

2

它看起来像你指定的函数头,但从来没有实际编写函数的主体。

您需要定义函数I.E.

B::B(const char *filename){ 
    // Do stuff 
} 

in B.cpp。

你的问题与const的正确性没有任何关系。