[C++]类作用域

在C++中,类(Class)是一种用户定义的类型,它允许我们将数据(属性)和操作这些数据的方法(函数)封装在一起。类作用域(Class Scope)是理解如何在类中组织和管理这些成员(成员变量和成员函数)的关键概念。

1. 类定义与作用域

  1. 类定义:类通过关键字classstruct(在C++中,structclass几乎相同,除了默认访问级别:struct默认为public,而class默认为private)定义。类定义了一个新类型的蓝图,包括其成员变量(属性)和成员函数(方法)。

  2. 作用域:在类定义内部声明的所有成员(包括成员函数、成员变量、嵌套类型等)都位于类的作用域内。这意味着这些成员只能被类本身、类的成员函数、友元函数或继承该类的派生类访问(具体取决于成员的访问权限)。

2. 访问权限

  1. 公有成员(Public Members):公有成员可以在类的外部被访问。
  2. 保护成员(Protected Members):保护成员在类的外部不可直接访问,但可以在派生类中被访问。
  3. 私有成员(Private Members):私有成员在类的外部和派生类中均不可直接访问,只能通过类的成员函数或友元函数进行访问。

3. 成员函数的作用域

  1. 成员函数:成员函数是定义在类内部的函数,它们可以访问类的所有成员(包括私有成员和保护成员)。成员函数通过隐式的this指针访问对象的成员。

  2. 静态成员函数:静态成员函数属于类本身,而不是类的某个对象。因此,静态成员函数不能访问类的非静态成员(除非通过对象或另一个静态成员函数显式传递)。

4. 嵌套类与局部类

  1. 嵌套类:一个类可以在另一个类的内部定义,这样的类被称为嵌套类。嵌套类有自己的作用域,但可以通过外围类的作用域操作符::来访问外围类的成员(如果它们是可访问的)。

  2. 局部类:在函数或代码块内部定义的类被称为局部类。局部类的作用域限于定义它的函数或代码块,并且不能访问该函数或代码块外部的任何非静态成员(除了全局成员)。

5. 友元

  • 友元:友元是一种允许类或函数访问另一个类的私有成员和保护成员的机制。友元可以是另一个类、函数或模板。通过声明友元,我们打破了封装性,因此应谨慎使用。

6. 类的实例化与作用域解析

  1. 实例化:当我们创建类的对象时,我们实际上是在类的作用域内创建了一个独立的内存区域来存储对象的成员。每个对象都有自己的成员变量副本(对于非静态成员),但共享成员函数(因为成员函数是类级别的,不属于任何特定对象)。

  2. 作用域解析操作符::操作符用于指定成员属于哪个类或命名空间。这在处理同名成员或需要明确指出成员属于哪个类时非常有用。

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值