当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

C++友元入门教程[VC/C++编程]

赞助商链接



  本文“C++友元入门教程[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在阐明什么是友元之前,我们先阐明一下为什么需求友元与友元的缺陷:

普通关于普通函数来说,要拜候类的保护成员是不大概的,假如想这么做那么必须把类的成员都生命成为public(共用的),但是这做带来的问题遍是任何外部函数都可以毫无约束的拜候它操作它,c++操纵friend修饰符,可以让一些你设定的函数可以对这些保护数据举行操作,避免把类成员全部设置成public,最大限度的保护数据成员的安全.

友元可以使得普通函数直接拜候类的保护数据,避免了类成员函数的频繁调用,可以节俭处理器开销,提高程序的效率,但冲突的是,即便是最大限度的保护,一样也破坏了类的封装特点,这便是友元的缺陷,在目前cpu速度越来越快的本日我们并不举荐利用它,但它作为c++一个必要的知识点,一个完好的构成部份,我们还是需求谈论一下的.

在类里声明一个普通函数,在前面加上friend修饰,那么这个函数就成了该类的友元,可以拜候该类的一切成员.

下面我们来看一段代码,看看我们是若何操纵友元来拜候类的一切成员的.

#include<iostream>  
usingnamespacestd; 
classInternet  
{  
public:  
   Internet(char*name,char*address)  
   {  
     strcpy(Internet::name,name);  
     strcpy(Internet::address,address);  
   } 
friendvoidShowN(Internet&obj);//友元函数的声明 
public:  
   charname[20]; 
   charaddress[20]; 
}; 
 
 
voidShowN(Internet&obj)//函数定义,不能写成,voidInternet::ShowN(Internet&obj) 
{ 
   cout<<obj.name<<endl; 
} 
voidmain()  
{ 
   Interneta("中国软件开辟实行室","www.cndev-lab.com"); 
   ShowN(a); 
   cin.get(); 
}

上面的代码通过友元函数的定义,我们成功的拜候到了a对象的保护成员name,友元函数并不能看做是类的成员函数,它只是个被声明为类友元的普通函数,所以在类外部函数的定义部份不可以写成void Internet::ShowN(Internet &obj),这一点要注意.


  以上是“C++友元入门教程[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 编写对GC友好又不泄露的代码
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .