2010-04-30 161 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的正確性沒有任何關係。