`

友元_c++学习笔记

 
阅读更多

1. 含义:友元关系以 friend 关键字声明,包括友元函数和友元类。

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

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

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

5. 示例:
#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;
}


运行结果:
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics