2015-04-02 2 views
-2

У меня есть неопределенная ссылочная ошибка в моей основной. Не уверен, что я делаю неправильно, и попытался изменить имена и перемещать вещи, но все равно получаю ту же ошибку. Я интересно, если возможно, это мой IDE, но на самом деле не знаю Вот код:Неопределенная ссылка на файлы

#include <iostream> 
#include "f.h" 
#include "g.h" 

using namespace std; 

int main() 
{ 
    F f; 
    G g; 

    f.f(); 
    g.g(); 

    return 0; 
} 

следующий файл:

#ifndef F_H_INCLUDED 
#define F_H_INCLUDED 

class F 
{ 
public: 
    void f(); 
}; 

#endif 

следующий файл:

#ifndef G_H_INCLUDED 
#define G_H_INCLUDED 

class G 
{ 
public: 
    void g(); 
}; 

#endif 

следующий файл:

#include "f.h" 
#include <iostream> 

void F::f() 
{ 
    std::cout << "This was function f!" << std::endl; 
} 

следующий файл:

#include "g.h" 
#include <iostream> 

void G::g() 
{ 
    std::cout << "This was function g!" << std::endl; 
} 

редактировать: так я изменил включать от «f.h» и «g.h» до «f.cpp» и «g.cpp», и теперь он работает ... может кто-нибудь объяснить, почему?

+2

убедитесь, что вы на самом деле компиляции и компоновки 3 файла, которые содержат функции –

+2

Что сообщение полная ошибка? – teppic

+0

неопределенная ссылка на "F :: F() – cppfan

ответ

0

Это выглядит нормально, но убедитесь, что если имена файлов являются правильными, есть разница между нижним и верхним кожухом.

#include "f.h" 
#include "g.h" 

его не то же самое, как

#include "F.h" 
#include "F.h" 
+0

это то же самое, если это файловая система, не учитывающая регистр. В любом случае, OP включает только версии в нижнем регистре. –

+0

да не проблема с именем файла – cppfan

0

я проверить его с VS2013, это правильно, если вы копируете код, пожалуйста, проверьте его.