C++:访问权限

C++中的访问权限控制用于指定类内成员(包括数据成员和成员函数)的访问范围。这是面向对象编程中封装性的一个重要方面,允许设计者定义哪些类的信息对外界可见,哪些应当保持私密。C++提供了三种基本的访问权限:privateprotectedpublic

1. private(私有)

私有成员只能被其所在类的函数访问。这意味着,从类的外部是无法直接访问这些成员的。在类定义中未指定访问权限的成员,默认为private。比如:

class MyClass {
private:
    int privateVar; // 私有变量
public:
    void setVar(int v) {
        privateVar = v;
    }
    int getVar() {
        return privateVar;
    }
};

2. protected(受保护)

受保护的成员在类内部和该类的派生类中都是可访问的,但不能通过类的对象来直接访问。这对于类的继承尤为重要,因为派生类可以访问基类中的受保护成员,而外部代码则不能。

class Base {
protected:
    int protectedVar; // 受保护的变量
};
class Derived : public Base {
public:
    void setVar(int v) {
        protectedVar = v; // 可以直接访问受保护的基类成员
    }
};

3. public(公有)

公有成员可以在任何地方被访问,包括类外部。通常,构造函数和部分成员函数(特别是用于访问私有和受保护数据的函数)被定义为公有的。

class MyClass {
public:
    int publicVar; // 公有变量
};

访问权限的重要性

  • 封装: 通过将内部实现细节(如类的私有成员)隐藏起来,封装保证了对象的完整性,减少了外部对对象状态的直接操作,从而降低了对象状态被意外或恶意修改的风险。
  • 继承与多态: protected访问权限在继承中尤为重要,它允许派生类访问基类的成员,同时又不将这些成员暴露给外部使用,有助于实现多态性。

正确使用访问权限可以帮助程序员提高代码的安全性、灵活性和可维护性。

#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;

/*
1.public    公共权限:成员 类内可以访问,类外可以访问
2.protected 保护权限:成员 类内可以访问,类外不可以访问--------子 可以访问 父 的保护类 
3.private   私有权限: 成员 类内可以访问,类外不可以访问
*/

//class 和 struct 区别在于默认的权限。class默认为私有,struct默认为公共

class Stu{
public:
    string name;

protected:
    int age;

private:
    int id;

public:
    void show()
    {
        name = "嘻嘻";
        age  = 19;
        id   = 123456;
    }
};

int main()
{
    Stu s1;

    //s1.age = 18;
    s1.name = "ahha";
    //s1.id = 156;
    s1.show();   

    return 0;
}
  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值