问题解答之c++友元类

简介: 问题解答之c++友元类

C++友元类可以理解为在一个类中,可以将其他类声明为友元类,并且允许友元类访问该类的私有成员和受保护成员。


在C++中使用友元类,需要在要声明为友元类的类中进行声明。例如:


class B;  // 声明类B,后面将其声明为类A的友元类
class A {
private:
  int privateValue;
protected:
  void protectedMethod() {
    // 访问私有成员
    privateValue = 10;
  }
  friend class B;  // 声明类B为友元类
};
class B {
public:
  void accessPrivateMember(A obj) {
    // 可以访问A类的私有成员
    obj.privateValue = 20;
  }
};
int main() {
  A a;
  B b;
  b.accessPrivateMember(a);
  return 0;
}


以上是一个简单的示例,演示了如何在类A中将类B声明为友元类,并在类B中访问类A的私有成员。在类A中,我们声明了类B为友元类,并在类B的成员函数中,可以直接访问类A的私有成员privateValue。


希望能帮助到你!


VX提问解答


相关文章
|
5天前
|
存储 编译器 对象存储
【C++打怪之路Lv5】-- 类和对象(下)
【C++打怪之路Lv5】-- 类和对象(下)
15 4
|
5天前
|
编译器 C语言 C++
【C++打怪之路Lv4】-- 类和对象(中)
【C++打怪之路Lv4】-- 类和对象(中)
15 4
|
5天前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
10 1
|
15天前
|
存储 编译器 C++
【C++类和对象(下)】——我与C++的不解之缘(五)
【C++类和对象(下)】——我与C++的不解之缘(五)
|
15天前
|
编译器 C++
【C++类和对象(中)】—— 我与C++的不解之缘(四)
【C++类和对象(中)】—— 我与C++的不解之缘(四)
|
17天前
|
编译器 C语言 C++
C++入门3——类与对象2-2(类的6个默认成员函数)
C++入门3——类与对象2-2(类的6个默认成员函数)
22 3
|
16天前
|
C++
C++番外篇——对于继承中子类与父类对象同时定义其析构顺序的探究
C++番外篇——对于继承中子类与父类对象同时定义其析构顺序的探究
49 1
|
17天前
|
编译器 C语言 C++
C++入门4——类与对象3-1(构造函数的类型转换和友元详解)
C++入门4——类与对象3-1(构造函数的类型转换和友元详解)
15 1
|
17天前
|
C++
C++番外篇——日期类的实现
C++番外篇——日期类的实现
47 1
|
17天前
|
编译器 C语言 C++
C++入门6——模板(泛型编程、函数模板、类模板)
C++入门6——模板(泛型编程、函数模板、类模板)
29 0
C++入门6——模板(泛型编程、函数模板、类模板)