友元_c++学习笔记

[size=medium]
1. 含义:友元关系以 [color=blue]friend[/color] 关键字声明,包括友元函数和友元类。

2. 作用:访问与其有好友关系的类中的私有成员。

3. 友元函数可以是一般函数(非成员函数),也可以是另一个类中的成员函数。

4. 友元 利弊:
1)利:有助于数据共享,可以提升程序的效率。
2)弊:可以访问其他类的私有数据,破坏了程序的封装性。

5. 示例:[/size]

#include <iostream>

using namespace std;

class Date; // 对Date类的提前声明

class Time
{
public:
Time ( int, int, int ); // 声明构造函数
void display ( Date & ); // 成员函数,形参是Date类对象的引用

private:
int hour, minute, sec;
};

class Date
{
public:
Date ( int, int, int );
friend void Time :: display ( Date & ); // 声明Time类中的display函数为本类的友元成员函数
private:
int month, day, year;
};

Time :: Time ( int hour, int minute, int sec ) // 定义Time类的构造函数
{
this->hour = hour;
this->minute = minute;
this->sec = sec;
}

void Time :: display ( Date &date ) // display函数的作用是输出年月日和时分秒
{
// 引用Date类对象中的私有数据
cout << date.month << "/" << date.day << "/" << date.year << endl;
cout << hour << ":" << minute << ":" << sec << endl;
}

Date :: Date ( int month, int day, int year ) // 定义Date类的构造函数
{
this->month = month;
this->day = day;
this->year = year;
}

int main ()
{
Time time ( 10, 13, 56 ); // 定义Time类对象time
Date date ( 7, 19, 2012); // 定义Date类对象date
time.display(date); // 调用time中的display函数,实参是Date类对象date
return 0;
}


[size=medium]运行结果:[img]http://images.cnblogs.com/cnblogs_com/elingwange/389869/r_QQ%e6%88%aa%e5%9b%be20120719170526.jpg[/img][/size]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值