1

Что я делаю не так, при попытке создать объект класса Date? Получаю ошибку LNK2001

#include <iostream>
#include <string>

using namespace std;

class Date {
private:
    static int day;
    static int month;
    static int year;

public:

    Date(void) {
    }
    Date(const Date &obj) {
        this->day = obj.day;
        this->month = obj.month;
        this->year = obj.year;
    }
    ~Date(){
    }
    static int GetDate() {
        return day;
    }
    static int GetMonth() {
        return month;
    }
    static int GetYear() {
        return year;
    }
    static void SetDate(int value) {
        day = value;
    }
    static void SetMonth(int value) {
        month = value;
    }
    static void SetYear(int value) {
        year = value;
    }
};

class Time {
private:
    static int second;
    static int minute;
    static int hour;

public:
    Time(void) {
    }
    Time(const Time& obj) {
        this->second = obj.second;
        this->minute = obj.minute;
        this->hour = obj.hour;
    }
    ~Time() {
    }
};

int main()
{
    Date obj;
    int str;
    cin >> str;
    obj.SetDate(str);
    cout << obj.GetDate();
}
kEdo
  • 77
  • 3
    Нужно или сделать inline static int day;, или снаружи класса дописать int Date::day;. Для остальных статических переменных аналогично. Но вообще, вы уверены, что вам здесь нужны статические переменные/методы? – HolyBlackCat May 17 '20 at 18:39
  • :24: undefined reference to `Date::day' – Небывалый May 17 '20 at 18:58
  • тут не то что слово static не нужно, но и видимо слово class – Pavel Gridin May 17 '20 at 19:11
  • Это курсовая работа, там бреда ещё больше в задании) – kEdo May 17 '20 at 19:39
  • А зачем вообще класс, в котором все static? Используйте просто пространство имен :) – Harry May 18 '20 at 04:46

0 Answers0