首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

问个C++ PRIMER的有关问题.

2012-02-10 
问个C++ PRIMER的问题...第4版看到12章类,前面翻译还可以,到11,12章开始就有些乱了,398页~友元声明将已命

问个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已经在上面定义了
};

引入外围作用域的意思是说,虽然某个友元是在类内部声明或者定义,但是它的作用域却不像类的成员变量和成员函数,并不局限于该类,而是引出到该类的外部

热点排行