尝试访问头函数中的私有 class 变量

Trying to access private class variables in header function

我需要头文件中的几个函数使用 std::cout 来表示日期,但我不知道如何从头文件访问它们。如果我在 class 之内,我可以这样说:

 void  DisplayStandard()
    {
        cout << month << "/" << day << "/" << year << endl;
    }

但是,由于我正在访问月、日和年(它们在我的 .cpp 文件中是私有的),所以我不确定如何通过实现文件中的无效函数修改它们。这是所有代码:

dateclasses.h

#ifndef DATECLASS_H
#define DATECLASS_H

class dateclass
{
    private:
        int month;
        int day;
        int year;
    public:
        //default constructor
        dateclass()
        {
            month = 1;
            day = 1;
            year = 1;
        }
        //value constructor
        dateclass(int month, int day, int year) 
        {
            this->month = month;
            this->day = day;
            this->year = year;
        }
        void DisplayStandard(); 
    
};
#endif

dateclasses.cpp

#include "dateclass.h"
#include <iostream>

using namespace std;

void DisplayStandard()
{
    cout << "Date: " << month << "/" << day << "/" << year << endl;
}   

我还没有设置主要功能,虽然我认为没有必要

您可以解决这个问题,方法是将void DisplayStandard()更改为void dateclass::DisplayStandard(),如下所示

void dateclass::DisplayStandard()//note the dateclass:: added infront of DisplayStandard
{
    cout << "Date: " << month << "/" << day << "/" << year << endl;
}