Я пытаюсь объявить объект из класса в другом файле. Я добавил #include "transfer.h"
в мой metadata.cpp
файл, но я получаю следующее сообщение об ошибке:C++ constructor undefined reference
metadata.o: In function `importMetadata':
metadata.cpp:(.text+0x81): undefined reference to A::B::C::Transfer::Transfer()'
metadata.cpp:(.text+0x81): undefined reference to A::B::C::Transfer::~Transfer()'
И передачи определяется с в transfer.h
namespace A{
namespace B{
namespace C{
class Transfer {
public:
Transfer();
~Transfer();
int copydata();
... more code goes here.
};
}
}
}
Файл transfer.cpp
выглядит следующим образом:
Transfer::Transfer(){
}
Transfer::~Transfer(){
}
Я также делаю using namespace A::B::C;
в заголовке файла metadata.cpp. Может кто-нибудь, пожалуйста, помогите мне в этом? В функции int importMetadata()
в metadata.cpp
я объявляю Transfer transfer;
так в metadata.cpp
я делаю «transfer.copydata();`
Пожалуйста, покажите нам полный пример, который воспроизводит вашу ошибку. – robert
Редко бывает, что нужно много вложенных пространств имен и практически никогда не имеет случая использовать «пространство имен» ... – AJG85
Определяется ли 'Transfer' конструктор по умолчанию? Ошибка просто говорит вам, что компоновщик не смог найти реализацию 'Transfer()'. –