c++学习 之 类和对象 public , protected ,private

本文介绍了C++中公共(public)、保护(protected)和私有(private)三种访问控制修饰符,阐述了它们的访问权限及在类继承中的应用,强调了封装的重要性。
摘要由CSDN通过智能技术生成

前言

在C++中,访问控制修饰符(Access Control Modifiers)用于控制类的成员(成员变量和成员函数)的访问权限。这些修饰符分为三种:public、protected和private。它们定义了成员可以在何处访问,具体如下:

public:
public成员在类内部和外部都是可访问的。
这意味着任何地方都可以直接访问类的public成员。
protected:

protected成员在类内部可访问,但在类外部是不可访问的。
子类(派生类)可以访问其父类的protected成员。
private:

private成员只能在类的内部访问,对外部是隐藏的。
不能被类的子类访问。

下面是一个示例,说明这些访问控制修饰符的使用:

#include <iostream>

class MyClass {
public:
    int publicVar;       // public 成员
    void PublicMethod() {
        std::cout << "Public method." << std::endl;
    }

protected:
    int protectedVar;    // protected 成员
    void ProtectedMethod() {
        std::cout << "Protected method." << std::endl;
    }

private:
    int privateVar;      // private 成员
    void PrivateMethod() {
        std::cout << "Private method." << std::endl;
    }
};

// 上面 三种权限在这个类里面都是可以访问的

class MyDerivedClass : public MyClass {
public:
    void AccessProtected() {
        protectedVar = 42;  // 子类可以访问父类的 protected 成员
        ProtectedMethod();  // 子类可以调用父类的 protected 方法
    }
};

int main() {
    MyClass myObj;
    myObj.publicVar = 10;     // 可以直接访问 public 成员
    myObj.PublicMethod();     // 可以调用 public 方法

    // 下面的代码无法通过编译,因为 protectedVar 和 ProtectedMethod 是 protected 的
    // myObj.protectedVar = 20;
    // myObj.ProtectedMethod();

    MyDerivedClass derivedObj;
    derivedObj.AccessProtected();  // 子类可以访问 protected 成员和方法

    return 0;
}

总结起来,访问控制修饰符允许你控制类的成员对外部的可见性和可访问性,从而实现封装的概念,隐藏类的内部实现细节并提供合适的访问接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wniuniu_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值