代码艺术家
Code artist

很喜欢释迦牟尼佛的一句话:“无论你遇见谁,他都是你生命该出现的人,绝非偶然,他一定教会你一些什么”。

有问题 问我 问Google

不能将友元说明为虚函数,但虚函数可以是另一个类的友元

因为在一个类里声明友元时 由于友元不是自己的成员函数 自然在自己的类里不能把它声明为虚函数

但是在友元本身可以是虚函数

注意 友元是另外一个类的成员函数(在那个类里 它可以定义为虚函数)

这个类将它声明为自己的友元,只是让它可以存取自己的私有变量

代码如下:

 

 1 public class A
 2 {
 3    private:
 4         int d;
 5   public:
 6     friend B::Geta(A &a);
 7 }
 8 
 9 public class B
10 {
11   public:
12     virtual int Geta(A &a)
13    { 
14        return a->d;
15    }
16 }

 

这里Geta是class B的一个虚拟成员函数
同时它也是class A的一个友元函数,所以他能够存取A的私有变量d

 

posted @ 2015-04-23 16:08  Jason‘  阅读(1877)  评论(0)    收藏  举报