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

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

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

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

代码如下:

 

 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

 

相关文章:

  • 2021-05-19
  • 2021-06-02
  • 2021-08-13
  • 2021-09-11
  • 2022-01-09
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-06-12
  • 2021-08-13
  • 2021-06-18
  • 2021-11-17
  • 2022-12-23
相关资源
相似解决方案