Почему невозможно встроить определения функций или функций-членов класса в файлы .cpp? Например, в моих тестовых примерах ниже компоновщик вернет мне ошибку undefined reference, если я попытаюсь встроить определение функции или члена класса в файл cpp:
test.h
void print();
class A
{
public:
void print() const;
};
test.cpp
#include <test.h>
inline void print()
{
// implementation
}
inline void A::print() const
{
// implementation
}
main.cpp
#include <test.h>
int main(int argc, char** argv)
{
print(); // undefined reference to `print()'
A a;
a.print(); // undefined reference to `A::print() const'
return 0;
}
Я прочитал некоторые ответы здесь, но до сих пор не уверен, как это работает.
inline
из функций, они будут работать и возможно даже встроенный. - person Bo Persson   schedule 03.06.2018