C++ using指令 , 友元

      今早一直在回想昨晚伟杰师兄对建辉说的话。是这样的,伟杰师兄对着建辉打的一行代码using namespace std;说这样不好。我心想,我看的C++教学视屏,网上的一些C++代码,都是这样写的啊,有什么问题?于是就去一些论坛看看别人的说法。

 

      原来分为using指令(即类似using namespace std),using声明(即类似using nsA::a)。它们都是简化对命名空间成员的访问。using指令更方便,只需一句话嘛。using声明更为安全,只导入指定的名称,如果局部名字与指定的名称重名编译器就会报错。Conversely,using指令是导入整个命名空间所有成员的名字,如果与局部名字有冲突,局部名字会覆盖空间中的成员,编辑器是不会报错的!!存在隐蔽的错误隐患。所以我可以理解伟杰的意思是:一个几十行的代码用using namespace std一般是没问题的,毕竟涉及的变量少。但对于一个工程,存在着各种复杂的可能性,使用using namespace std;容易出错且不易发现。   

  

          接着是友元函数的概念:当一个普通函数或一个类的成员需要经常访问另一个类中的数据时,通常把被访问的类的成员函数声明为它的友元函数。嗯,大概知道是用来干嘛的,就是给个特权人家靠近自己(个人见解。。。)。于是翻了翻书,把注意的地方认真看了一遍,大概就几点要注意:

     1、类必须将重载函数集中每一个希望设为友元的函数都声明为友元。

     2、友元的声明以关键字friend开始,只能出现在类定义的内部。

     3、友元的声明建议成组放在类定义的开始或结尾。

 

     最后总结一下友元的作用:增加了成员函数的种类,但同时破坏了类的封装性和数据的隐蔽性,不多建议经常使用。(汗。。。今天不就白学了么。。。说笑啦,肯定有用的啦)。嗯,已经对友元有一定的了解,希望在日后的实践中进一步深入掌握。   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值