问题遇到的现象和发生背景
C++的类份文件编写编译错误,想不通错在哪
问题相关代码,请勿粘贴截图
主函数:
#include
#include "Time.h"
#include "Date.h"
using namespace std;
void display(Date& d,Time &t)
{
cout << d.month << "/" << d.day << "/" << d.year << endl;
cout << t.hour << ":" << t.minute << ":" << t.sec << endl;
}
int main()
{
Time t1(10, 13, 56);
Date d1(12, 25, 2004);
display(d1, t1);
system("pause");
return 0;
}
第一个分文件:
#pragma once
#include
#include "Date.h"
using namespace std;
//class Date
class Time
{
public:
Time(int, int, int);
friend void display(Date& d, Time& t);
private:
int hour;
int minute;
int sec;
};
Time::Time(int h, int m, int s)
{
hour = h; minute = m; sec = s;
}
第二个分文件:
#pragma once
#include
#include "Time.h"
using namespace std;
//class Time;
class Date
{
public:
Date(int, int, int);
friend void display(Date& d, Time& t);
private:
int month;
int day;
int year;
};
Date::Date(int m, int d, int y)
{
month = m; day = d; year = y;
}
运行结果及报错内容
我的解答思路和尝试过的方法
第二个分文件加上第一个类的声明就能运行
但是我寻思着我已经引用了第一个类的头文件,为什么还要加上声明呢