C++ |
1
2
3
4
5
6
7
8
9
10
11
| ostream& operator << (ostream& out, const Date& date)
//это перегрузка оператора <<
//за счет этой перегрузки можно писать так:
Date date;
std::cout << date << std::endl;
// используется в строчке 90 исходного примера.
//у вас же явно все поля на вывод уходят, что несколько многословнее:
cout<<date->day<<".";
cout<<date->month<<".";
cout<<date->year;
cout<<endl; |
|
struct Node - ну это узел списка. содержит поле с данными и указатель на следующий узел. список ведь из узлов состоит.
C++ |
1
2
3
| private:
List(const List&);
List& operator = (const List&); |
|
это не реализованные конструктор копирования и оператор присваивания. их или нужно вот так запрещать,
или реализовывать по нормальному. если так не сделать, то компилятор сгенерит дефолтные, а они неверные.
следующий код скомпилится, но будет приводить к крашам:
C++ |
1
2
3
4
5
| List lst1;
lst1.add(Date(1, 2, 3));
List lst2 = list1; // отсюда начнутся проблемы
List lst3;
lst3 = lst2; // этот код тоже приведет к проблемам. |
|