类中最后main函数如何调用数据成员,调用时总是显示私有成员无法访问

类似下面的主函数,最后输出时总是提示private成员无法访问,原因是什么啊,或者需要通过什么方式才能访问呢,友元函数吗?希望有人可以解答一下,谢谢!

int main(void)
{
    using std::cin;
    using std::cout;
    using std::endl;

    date D1,D2;

    int year;
    int month;
    int day;

    cin>>year>>month>>day; //输入第一个日期 
    D1=date(year,month,day);

    D2=D1++;

    cout<<D1.year()<<" "<<D1.month()<<" "<<D1.day()<<endl;
    cout<<D2.year()<<" "<<D2.month()<<" "<<D2.day()<<endl;
    return 0;

通过类方法可以间接访问私有成员