友元函数

来源:互联网 发布:spring源码视频百度云 编辑:程序博客网 时间:2024/06/05 21:13

在C++语法中有一个叫做友元函数,类的好朋友,好到可以直接访问和修改类的私有成员.C++这样设计虽然提供了另外一种方式来访问和修改类的私有成员,但是也破坏面向对象设计的封装这个原则.友元函数的特性决定 了友元函数的一个重要的应用—-(操作符重载,见后面的博客)

一,友元函数的定义和性质
1,友元函数需要在类中使用friend关键字进行声明, 声明在public,private,protected域都是一样的.如:

friend void setFriendA(FriendFunc *p , int a);

2,友元函数是一个全局函数,并非属于类.需要对其实现添加方法体

void setFriendA(FriendFunc *p , int a){     p->a = a; }

二,示例代码
代码如下:

// 友元函数.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include"iostream"using namespace std;class FriendFunc{public:    FriendFunc(int a){        this->a = a;    }     friend void setFriendA(FriendFunc *p , int a);    void printA(){        cout << "a = " << a << endl;    }private:    int a;};void setFriendA(FriendFunc *p , int a){    p->a = a;}int _tmain(int argc, _TCHAR* argv[]){    FriendFunc a(1);    a.printA();    setFriendA(&a, 100);    a.printA();    return 0;}
0 0
原创粉丝点击