友元和const

来源:互联网 发布:精解windows 10 mobi 编辑:程序博客网 时间:2024/04/29 20:54

        在开发应用程序时,一个类经常将另一个类的对象作为自己的成员,这样,在该类中就可以访问另一个类的共有数据和方法了。但是,有些时候需要方位另一个类中的私有数据成员和方法,C++中提供了友元类,在类A中将类B声明为一个友元类,那么在B中就可以访问类A中的私有数据成员和方法了。

::友元关系不能传递。如果A是B的友元,B是C的友元,并不意味着A是C的友元。友元关系也不能够继承,如果A是B的友元,C派生于A,不意味着C是B的友元。

如果雷A是类B的友元,那么类A中的类B对象能够访问B中所有的数据和方法。

          

         有些时候需要限制类A对类B的访问,使其只能通过几个函访问数类B中的私有数据和方法。C++中提供了友元函数,用户可以在类B中将类A中的成果函数声明为友元,通过友元函数限制对类B的访问。

        如果类A中的成员函数时类B的友元函数,其在类B中的声明形式为(friend 函数返回值类型 函数名(参数)),这样在类A中的该成员函数内部类B的对象就可以访问类B的所有方法和对象了。

   

 

         在声明类的方法时,可以使用const关键字,这样就不会改变类中的任何数据成员。对于类中的一些只读方法,应当将其声明为const方法。例如:

         int getheight() const;

         在开发程序时,对于不想改变类成员数据的函数,应将其声明const方法,这样编译器会帮助开发人员发现错误。

        

原创粉丝点击