目录
频道首页
局部类和嵌套类_无梦
收藏
0
The_Byte_Station 最近修改于 2023-10-29 11:57:14

在这里插入图片描述

1. 嵌套类

1. 什么是嵌套类

在类中定义类,即为嵌套类。外部的类称为外围类,在外部类内部的类称为的嵌套类。

2. 嵌套类的特点

外围类可以通过内部类的对象访问嵌套类的公有成员,嵌套类不可以访问外围类的任意成员。

嵌套类的成员函数可以在类体外定义,嵌套类只是语法上的嵌套。

外围类需要使用嵌套类的对象作为底层实现,且嵌套类只用于外围类的实现,同时对用户隐藏底层实现。

从作用域的角度讲,嵌套类被隐藏在外围类之中,该类名只能用于外围类中使用。如果在外围类之外的作用域使用该类名时,需要加名字限定。

3. 嵌套类案例

class A{
public:
     class B{
    public:
    int b;
    void print();
    void print1()
    {
    cout<<"嵌套类  print1"<<endl;
    }
protected:
   int c;
pirvated:
   int d;
};
B b_;
void print3()
{
    cout<<"外围类   print3"<<endl;
}
};

void A::B::print()
{
cout<<"嵌套类  print"<<endl;
}

int main()
{
    A obj;
    obj.b_.print();
    obj.b_.print1();
    obj.print3();
    obj.b_.b; 
    // obj.b_.c   obj.b_.d   显然不可以访问到
    //通过作用域说明符也可以直接定义嵌套类的对象
    A::B:: obj1;
    obj1.print();
    obj1.print1();
}

2. 局部类

1. 什么是局部类

定义在函数内部的类称为局部类,局部类只在局部域可用。

2. 局部类的特点

  1. 局部类的成员函数只能在类体中定义。

  2. 局部类不可以有静态成员函数。

  3. 在实践中,局部类很少用。

3. 局部类案例

void Sum(){
class A{
    public:
    int a;
    int b;
    void Print(int k)
    {
        cout<<k<<endl;
    }
};
    A obj;
    int k=obj.a+obj.b;
    obj.Pirnt(k);
}

3. 异常处理

1. 什么叫异常处理?

答∶异常处理是一种程序定义的错误,它对程序的逻辑错误进行设防,并对运行异常加以控制。在C++中,异常处理是对所能预料的运行错误进行处理的一套实现机制。

2. C++的异常处理机制有何优点?

答:C++的异常处理机制使得异常的引发和处理不必在同一函数中。C++异常处理的目的是在异常发生时,尽可能地减小破坏,周密地善后,而不影响其他部分程序的运行。这样底层的函数可以着重解决具体问题,而不必过多地考虑对异常的处理。上层调用者可以在适当的位置设计对不同类型异常的处理,这在大型程序中是非常必要的。

在这里插入图片描述

内容大纲
批注笔记
局部类和嵌套类_无梦
ArticleBot
z
z
z
z
申请加入
主页
会议室
Git管理
文章
云文档