问个C++ PRIMER的问题...
第4版看到12章类,前面翻译还可以,到11,12章开始就有些乱了,398页
~友元声明将已命名的类或非成员函数引入到外围作用域中.此外,友元函数可以在类的内部定义,该函数的作用域扩展到包围该类定义的作用域~
~用友元引入的类名和函数(定义或声明),可以像预先声明的一样使用~
class x{
friend class y;
friend void() {/*ok to define friend function in the class body*/}
};
class z{
y*ymem;// ok:declaration for class y introduced by friend in x
void g() {return ::f();}
};
帮忙解释一下这段的意思....
[解决办法]
针对特定的字符串操作。
[解决办法]
~友元声明将已命名的类或非成员函数引入到外围作用域中.此外,友元函数可以在类的内部定义,该函数的作用域扩展到包围该类定义的作用域~
~用友元引入的类名和函数(定义或声明),可以像预先声明的一样使用~
这个说的很清楚了啊。
[解决办法]
意思是说:
class x{
friend class y; //友元声明,相当于已经声明了类y
friend void test() {}//友元声明,而且定义了友元函数tese,但tese不是类的成员函数
};
class z{
y* ymem; //类y已经在上面的类x中声明了,所以可以用来定义y的指针类型
void g() {test();}//test已经在上面定义了
};
引入外围作用域的意思是说,虽然某个友元是在类内部声明或者定义,但是它的作用域却不像类的成员变量和成员函数,并不局限于该类,而是引出到该类的外部