用Date类显示日期 请问这个那里错了运行不出来

#include
using namespace std;
class Date{
friend ostream &operator<<(ostream &cout,Date &p);
private:
int year;
int month;
int day;
public:
Date(int y,int m,int d){
day=d;
month=m;
year=y;
}
};

void display(){
cout<<year<<"-"<<month<<"-"<<day<<endl;
}
ostream &operator<<(ostream &cout,Date &p)
{cout<<p.year<<"-"<<p.month<<"-"<<p.day<<endl;
return cout;}

int main(){
int y,m,d;
cin>>y>>m>>d;
Date dt(y,m,d);
cout<<dt;
return 0;
}


#include <iostream>

using namespace std;
class Date {
    friend ostream& operator<<(ostream& cout, Date& p);
private:
    int year;
    int month;
    int day;

public:
    Date(int y, int m, int d) {
        day = d;
        month = m;
        year = y;
    }
    void display();
};

void Date::display() {
    cout << year << "-" << month << "-" << day << endl;
}
ostream& operator<<(ostream& cout, Date& p)
{
    cout << p.year << "-" << p.month << "-" << p.day << endl;
    return cout;
}

int main() {
    int y, m, d;
    cin >> y >> m >> d;
    Date dt(y, m, d);
    cout << dt;
    return 0;
}

运行结果:

img