C++ 编程基础(6)作用域 | 6.3、类作用域


前言:

在C++编程中,类是面向对象编程的核心概念之一。类不仅封装了数据和操作这些数据的方法,还定义了一种新的作用域——类作用域。类作用域是指定义在类内部的成员(包括数据成员和成员函数)的可见性和访问权限的范围。

一、类作用域

1、定义

类作用域从类的左大括号{ 开始,到右大括号} 结束。在这个范围内声明的所有成员(包括变量、函数、嵌套类型等)都属于这个类,并且只能在类的作用域内或者通过类的对象、指针或引用来访问。

class MyClass {
public:
    int publicVar;    // 公共数据成员
    void publicFunc() {
        // 公共成员函数
    }

private:
    int privateVar;   // 私有数据成员
    void privateFunc() {
        // 私有成员函数
    }

protected:
    int protectedVar; // 受保护数据成员
    void protectedFunc() {
        // 受保护成员函数
    }
};

2、访问控制修饰符

  • public(公共)public 成员可以在类的外部被直接访问。任何知道类名的地方都可以访问 public 成员。
  • protected(受保护)protected 成员可以被类本身及其派生类访问,但不能被其他非派生类访问。这为类的继承提供了一种保护机制。
  • private(私有)private 成员只能在类的内部被访问,不能被类的外部或派生类访问。这是最严格的访问限制,用于隐藏类的实现细节。

3、嵌套作用域

类作用域可以包含嵌套作用域,例如成员函数内部定义的局部变量、静态成员函数或嵌套类。这些嵌套作用域的成员在外部不可直接访问,除非通过适当的路径(如类的对象、指针、引用或静态成员访问)。

class OuterClass {
private:
    int outerVar;

public:
    class InnerClass {
    public:
        int innerVar;
        void innerFunc() {
            // 访问OuterClass的成员是不可能的,除非通过某种方式传递引用
        }
    };

    void outerFunc() {
        int localVar = 10; // 局部变量,仅在outerFunc内部可见
    }
};

4、静态成员

静态成员(包括静态数据成员和静态成员函数)也属于类的作用域,但它们与类的任何特定对象实例无关。静态成员通过类名直接访问,而不是通过类的对象。

class StaticExample {
public:
    static int staticVar;

    static void staticFunc() {
        // 静态成员函数
    }
};

// 静态数据成员的初始化必须在类外部进行
int StaticExample::staticVar = 0;

5、总结

类作用域是C++面向对象编程中的核心概念之一,它定义了类的成员如何被封装和访问。通过合理使用访问修饰符、嵌套作用域和静态成员,可以设计出结构清晰、功能明确的类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值