C++ 友元类的学习与使用

来源:互联网 发布:守望先锋短十字数据 编辑:程序博客网 时间:2024/05/08 01:41
类是面向对象的基础,其中一个重要特征就是数据的封装性与屏蔽性,但有时候有需要一个类访问另一个类的数据成员,这时就需要友元类或者友元函数了,下面是自己写得一个简单的友元类,它的声明方式是friend class name:

Date.h

class Time;class Date{public:    Date(int, int, int);    void display(Time&);    //friend void Time::display(Date&);private:    int month;    int day;    int year;};
Time.h

class Date;class Time{public:    Time(int, int, int);    friend class Date;private:    int hour;    int minute;    int second;};
Date.cpp

#include "Date.h"#include "Time.h"#include <iostream>using namespace std;Date::Date(int m, int d, int y){    month = m;    day = d;    year = y;}void Date::display(Time& t){    cout << month << "/"<< day << "/" << year << endl;    cout << t.hour << ":" << t.minute << ":" << t.second << endl;}

Time.cpp

#include "Time.h"Time::Time(int h, int m, int s){    hour = h;    minute = m;    second = s;}


main.cpp


#include "Time.h"#include "Date.h"int main(){    Time t1(10, 13, 56);    Date d1(12, 25, 2004);    d1.display(t1);    return 0;}

最有总结下:

1、友元类是单向的不是双向的

2、友元类的关系不能传递

运行结果是:






0 0
原创粉丝点击