Правильный ли следующий подход? Ну, я получаю ошибку компиляции.
a.hpp is
#include <iostream>
class a
{
public:
void classa_f();
};
a.cpp is
#include "a.hpp"
void a::classa_f()
{
std::cout<< "a::classa_f\n";
}
main.cpp
#include <iostream>
namespace myname {
#include "a.hpp"
}
int main ()
{
myname::a obj;
obj.classa_f();
return 0;
}
Я получаю следующую ошибку
g ++ main.cpp a.o
/tmp/ccOOf5s7.o: в функции main':
main.cpp:(.text+0x11): undefined reference to
myname :: a :: classa_f () '
collect2: ld вернул 1 статус выхода
Ну, мой вопрос, возможно ли иметь только включения в пространстве имен, но не в реальной реализации, потому что я вижу, что компилятор ищет в пространстве имен определение функции. Чего на самом деле нет.