Нужна помощь!

Всем доброго времени суток!
При компиляции этого кода:

 #include <iostream>
    using std::endl;
    using std::cout;
    using std::cin;

class Day
{
public:
    explicit Day(unsigned char day)
    {
        this->dValue = day;
    }
private:
    unsigned char  dValue;
};

class Date 
{
public:
    void set(Day &d);
};

Date createDate(Day &day)
{
    Date date;
    date.set(day);
    return date;
}

int main()
{
    Date theDate =  createDate(Day(2));
}

Выдаёт следующие сообщение:

 main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall Date::set(class Day &)" (?set@Date@@QAEXAAVDay@@@Z) в функции "class Date __cdecl createDate(class Day &)" (?createDate@@YA?AVDate@@AAVDay@@@Z)
    1>D:\Lessons\Debug\Lessons.exe : fatal error LNK1120: неразрешенных внешних элементов: 1

Подскажите в чём проблема?
Заранее спасибо!

Ты не определил метод set(Day &d) класса Date. Описание не является определением.

Если ты напишешь хотя бы так:

class Date 
{
public:
    void set(Day &d) {}
};

ошибки не будет.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.