21xrx.com
2025-03-27 16:54:58 Thursday
文章检索 我的文章 写文章
C++内部类如何访问外部类?
2023-06-25 01:27:35 深夜i     82     0
C++ 内部类 访问 外部类

C++中的内部类是指在一个类中定义的另一个类。内部类的特点是可以访问外部类的私有成员。但是,如果内部类需要访问外部类的非静态成员,需要通过指向外部类对象的指针来实现。

下面我们来看一个示例代码:

class OuterClass {
private:
  int num = 100;
public:
  void display()
    cout << "OuterClass num: " << num << endl;
  
  class InnerClass {
  public:
    void accessOuter(OuterClass& obj)
      cout << "InnerClass access OuterClass num: " << obj.num << endl;
    
  };
};
int main() {
  OuterClass obj1;
  obj1.display();
  OuterClass::InnerClass obj2;
  obj2.accessOuter(obj1);
  return 0;
}

在这个示例中,OuterClass是外部类,内部类InnerClass不能直接访问外部类的非静态成员num。但是,InnerClass中的方法accessOuter通过对象引用传递obj参数,可以访问外部类的私有成员num。

在main方法中,我们首先实例化OuterClass对象obj1,并调用它的display方法显示num的值。然后,我们通过OuterClass::InnerClass实例化InnerClass对象obj2,并调用它的accessOuter方法,传递了外部类对象obj1作为参数。accessOuter方法成功地输出了obj1对象的num值,证明了InnerClass访问外部类的私有成员的能力。

因此,我们可以看出,C++内部类可以方便地访问外部类的私有成员,但是需要注意访问非静态成员时,需要通过对象引用传递指向外部类对象的指针来实现。

  
  

评论区

请求出错了