Я по-прежнему получаю сообщение об ошибке, независимо от того, где я вставил строку (или если я вставил строку в обе) Из 4 комбинаций (встроенных в my_class.h и / или в my_class.cpp) работает только та, которая нигде не включена.

учаю ошибку компилятора, когда пытаюсь встроить метод одного из моих классов. Это работает, когда я убираю ключевое слово "inline".

Вот упрощенный пример:

main.cpp:

#include "my_class.h"

int main() {
  MyClass c;
  c.TestMethod();

  return 0;
}

my_class.h:

class MyClass {
 public:
  void TestMethod();
};

my_class.cpp:

#include "my_class.h"

inline void MyClass::TestMethod() {
}

Я пытаюсь скомпилировать с:

g++ main.cpp my_class.cpp

Я получаю ошибку:

main.cpp:(.text+0xd): undefined reference to `MyClass::TestMethod()'

Все хорошо, если я уберу «встроенный». Что вызывает эту проблему? (а как мне встроить методы класса? Возможно ли это?)

Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос