#include метод класса через заголовочный файл

Пример с оф. сайта Microsoft, собственно ничем не отличается от того что советуют в Сети.

Некоторый класс пользовательской библиотеки. Объявлен в заголовочном файле:

// my_class.h
    class my_class
    {
    public:
        void do_something();
    };

Определен в исходнике:

// my_class.cpp
#include "my_class.h"
#include <iostream>

using namespace std;

void my_class::do_something()
{
    cout << "Doing something!" << endl;
}

Попытка использовать эту функцию в другом исходном файле:

// my_program.cpp
#include "my_class.h"

int main()
{
    my_class mc;
    mc.do_something();
    return 0;
}

На выходе выдает ошибку линковки: error LNK2019: ссылка на неразрешенный внешний символ "public: void __cdecl my_class::do_something(void)" (?do_something@my_class@@QEAAXXZ) в функции main. 1>C:\Users\source\repos\header_test_call\x64\Debug\header_test_call.exe : fatal error LNK1120: неразрешенных внешних элементов: 1 1>Сборка проекта "header_test_call.vcxproj" завершена с ошибкой.

Почему не работает элементарный пример, подскажите пожалуйста.


Ответы (0 шт):