今天 准备写一个 DX渲染类 用到了前面写的 CreaDecive中的private变量 想了想就添加了一个友元函数
这一天即可不要紧 错误接连不断 最后终于调通了
其中在网上找的一个例子帮了哦我不少大忙 代码如下
#pragma once
#include "time.h"
class Date{
public:
Date(int y=2007,int m=12,int d=25)
{m_iYear=y;m_iMonth=m,m_iDay=d;
}
friend void Time::display(Date &d);
private:
int m_iYear;
int m_iMonth;
int m_iDay;
};
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
data。cpp
#include "data.h"
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
time。h
#pragma once
#include
using namespace std;
class Date;//先声明Date类,后面会有定义,否则在Time中的void display(Date &);会报错,因为编译器还认不得Date类
class Time{
public:
Time(int h=20,int m=25,int s=30):m_iHour(h),m_iMinute(m),m_iSecond(s){}
void Show()
{cout<< m_iHour<<":"<< m_iMinute<<":"<
private:
int m_iHour;
int m_iMinute;
int m_iSecond;
};
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
time。cpp
#include "time.h"
#include "data.h"
#include
using namespace std;
void Time::display(Date &d)
{cout<
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
main.cpp
#include "data.h"
#include "time.h"
void main()
{
Time time1(5,6);
//time1.Show();
Date date1;
time1.display(date1);
}
最后发现其实自己不是在友元这一块弄错了 而是在include 头文件时 顺序搞错 结果 总是产生错误
不过也加什么对友元的认识