21xrx.com
2024-12-22 23:40:21 Sunday
登录
文章检索 我的文章 写文章
"C++11特性之内部类"
2023-06-26 00:15:42 深夜i     --     --
C++11特性 内部类 成员类 封装 嵌套类

在C++11中,内部类是一个非常有用的特性,它允许在类内定义另一个类。这种特性在编写大型项目时非常有用,因为它可以将相关的类组合在一起。

内部类可以像普通的类一样定义成员变量和成员函数,但它们还可以访问外部类的私有成员。这使得内部类可以充当外部类的辅助工具或代理类,从而使代码更加清晰和简洁。

以下是一个使用内部类的示例:


class OuterClass {

public:

  class InnerClass {

  public:

    void innerMethod()

      // 访问外部类的私有成员

      std::cout << "OuterClass's private member value is: " << outerPrivateVal << std::endl;

    

  };

private:

  int outerPrivateVal;

public:

  OuterClass(int val)

    outerPrivateVal = val;

  

};

int main() {

  OuterClass outer(42);

  // 创建内部类对象

  OuterClass::InnerClass inner;

  // 调用内部类方法访问外部类的私有成员

  inner.innerMethod(outer);

  return 0;

}

在上面的代码中,我们定义了一个外部类`OuterClass`,其中有一个私有成员`outerPrivateVal`。接下来,我们定义了一个内部类`InnerClass`,并在内部类中定义了一个公共方法`innerMethod()`,该方法可以访问外部类的私有成员`outerPrivateVal`。

在主函数中,我们首先创建了一个`OuterClass`对象,然后创建了一个`InnerClass`对象。最后,我们通过调用内部类的方法来访问外部类的私有成员。

总之,内部类是C++11中非常有用的特性,它允许在类内定义另一个类,并可以访问外部类的私有成员。这种特性可以使代码更加清晰和简洁,使得使用它可以简化大型项目的开发。

  
  

评论区

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