21xrx.com
2024-11-22 07:35:08 Friday
登录
文章检索 我的文章 写文章
C++内部类如何访问外部类?
2023-07-05 08:09:09 深夜i     --     --
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++内部类可以方便地访问外部类的私有成员,但是需要注意访问非静态成员时,需要通过对象引用传递指向外部类对象的指针来实现。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复