c++ private protected public 的区别

private、protected、public 是 C++ 中的访问修饰符,用于控制类中成员变量和成员函数的访问权限。

  • private

    private 表示私有的,只能在当前类的成员函数中访问,其他类和对象都不能访问。私有成员变量一般用于类的内部实现,不希望外部直接访问和修改。

  • protected

    protected 表示受保护的,只能在当前类和其子类的成员函数中访问,其他类和对象都不能访问。受保护成员变量一般用于类的继承和实现,子类可以访问和修改父类的受保护成员变量。

  • public

    public 表示公有的,所有类和对象都能访问。公有成员变量和公有成员函数一般用于类的接口和外部调用,提供给外部使用。

    总结:

private:只能在本类内部访问,其他任何地方都不能访问。

protected:可以在本类内部和子类中访问,其他任何地方都不能访问。

public:可以在任何地方访问。

///

例如protected

class Animal {
protected:
    int age; // 受保护的成员变量
public:
    virtual void eat() {} // 公有的虚函数
};

class Dog : public Animal {
public:
    void setAge(int a) { age = a; } // 子类可以访问和修改父类的受保护成员变量
};

int main() {
    Animal animal;
    animal.age = 1; // 错误,不能在类外部直接访问受保护的成员变量
    Dog dog;
    dog.setAge(2); // 正确,可以在子类中访问和修改父类的受保护成员变量
    return 0;
}

假设我们在头文件的protected定义变量,那么在cpp文件中 可以调用吗
可以调用 ,必须是在头文件声明的成员函数中调用,也就是说在cpp里进行成员函数的编写

// Myclass.h 头文件
#ifndef MYCLASS_H
#define MYCLASS_H

class Myclass {
private:
    int x; // 私有变量
public:
    void setX(int a); // 公有函数
    int getX(); // 公有函数
};

#endif

// Myclass.cpp 实现文件
#include "Myclass.h"

void Myclass::setX(int a) {
    x = a;
}

int Myclass::getX() {
    return x;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

牛郎恋刘娘,刘娘念牛郎

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

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

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

打赏作者

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

抵扣说明:

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

余额充值