类作用域知识

在 C++ 中,类作用域是指类定义中声明的成员(包括成员变量和成员函数)所具有的可见性和访问范围。类作用域有几个关键的特性:

  1. 成员变量和成员函数的访问控制:在类作用域内,可以定义 public(公有),private(私有)和 protected(保护)成员。公有成员可以在类的外部访问,私有成员只能在类的内部访问,而保护成员可以在类的内部以及派生类中访问。
  2. 名称遮蔽:在类作用域内,成员变量和成员函数的名称会遮蔽外部的同名变量和函数。这意味着在类的成员函数内部,当你引用一个名称时,编译器会首先在类作用域内查找该名称。
  3. 作用域解析运算符:作用域解析运算符 :: 可以用来访问类作用域外的全局作用域或者其他类的作用域中的成员。例如,如果有两个同名的全局变量和类成员变量,可以在类内部使用 :: 来明确指明访问全局变量。
  4. 构造函数和析构函数:构造函数和析构函数是在类作用域内定义的特殊成员函数,它们用于对象的创建和销毁。构造函数在对象创建时自动调用,而析构函数在对象销毁时自动调用。
  5. 成员函数的定义:成员函数可以在类定义内部或外部定义。如果在类定义内部定义,它们会自动被视为内联函数。如果在外部定义,需要使用作用域解析运算符来指定函数属于哪个类。
  6. 静态成员:类作用域内可以声明静态成员变量和静态成员函数。静态成员属于类本身,而不是类的某个具体对象,因此它们可以通过类名直接访问,不需要创建对象实例。
    下面是一个简单的例子,展示了类作用域的一些特性:
#include <iostream>
class MyClass {
public:
    int publicVar; // 公有成员变量
    void publicFunc(); // 公有成员函数声明
private:
    int privateVar; // 私有成员变量
    void privateFunc(); // 私有成员函数声明
protected:
    int protectedVar; // 保护成员变量
    void protectedFunc(); // 保护成员函数声明
};
// 成员函数的定义
void MyClass::publicFunc() {
    publicVar = 10;
    privateVar = 20; // 可以访问私有成员
    protectedVar = 30; // 可以访问保护成员
}
void MyClass::privateFunc() {
    // 私有函数的实现
}
int main() {
    MyClass obj;
    obj.publicVar = 5; // 正确,可以访问公有成员
    // obj.privateVar = 5; // 错误,不能访问私有成员
    // obj.protectedVar = 5; // 错误,不能访问保护成员
    obj.publicFunc(); // 正确,可以调用公有成员函数
    // obj.privateFunc(); // 错误,不能调用私有成员函数
    // obj.protectedFunc(); // 错误,不能调用保护成员函数
    return 0;
}

在这个例子中,MyClass 有公有、私有和保护成员。在 main 函数中,我们创建了 MyClass 的一个对象 obj 并尝试访问其成员。可以看到,我们只能访问公有成员 publicVar 和调用公有成员函数 publicFunc。尝试访问私有或保护成员会导致编译错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九层指针

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值