标签:标识 定义类 访问 div pre void 运算符 prot protect
#include<iostream> using namespace std; class Box { double width; public: friend void printWidth(Box box); void setWidth(double wid); }; //类的友元函数,定义在类外部,用::作用域限定符 //有权访问类的所有私有和保护成员,在类中定义,用friend表示 //不是成员函数 void Box::setWidth(double wid) { width=wid; } //printWidth()不是任何类的成员函数 void printWidth(Box box) { cout<<"Width of box"<<box.width<<endl; } int main() { Box box; box.setWidth(10.0); printWidth(box); return 0; }
一个类中可以有 public、protected、private 三种属性的成员,通过对象可以访问 public 成员,只有本类中的函数可以访问本类的 private 成员。
而友元则是一个外设,借助友元(friend),可以使得其他类中的成员函数以及全局范围内的函数访问当前类的 private 成员。
以前的一个笑话,说你的私处父母子女不能摸,孩子也不能摸,只有你的"朋友"可以触碰,就是这个吧。
在友元类中,友元的关系是单向的而不是双向的。且不能传递。
友元函数不同于类的成员函数,在友元函数中不能直接访问类的成员,必须要借助对象。
成员函数可以定义在类定义内部,或者在类的外部单独使用范围解析运算符 :: 来定义。在类定义中定义的成员函数把函数声明为内联的,即便没有使用 inline 标识符。
定义类的成员函数时候,在 :: 运算符之前必须使用类名。调用成员函数是在对象上使用点运算符(.)
标签:标识 定义类 访问 div pre void 运算符 prot protect
原文地址:http://www.cnblogs.com/enyala/p/7637639.html