当前位置: 首页 > news >正文

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

前言

在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;
}

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

http://www.lryc.cn/news/145241.html

相关文章:

  • ECharts图表动态修改series显示隐藏
  • 云服务器(Centos7系统)配置JAVA+mysql+tomcat 环境
  • 【计算机视觉 | 目标检测】目标检测常用数据集及其介绍(四)
  • Dockerfile制作镜像与搭建LAMP环境
  • Linux系统中查看端口的方法
  • java mysql传入string数组返回string数组的简单写法
  • 【PHP】PHP基本语法
  • SystemVerilog interface详细介绍
  • 计网第四章(网络层)(三)
  • python学习1之安装
  • Autofac在WebApi,Winform中应用
  • uview ui 查看版号
  • Python 爬虫网页图片下载到本地
  • PyQt open3d 加载 显示点云
  • Linux搭建SSLVpn
  • Qt5升级到Qt6分步迁移教程
  • 多线程学习之线程池
  • Elasticsearch基础
  • 论文阅读:Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks
  • 基于Web的旅游推荐网站设计与实现(论文+源码)_kaic
  • 继承AndroidView Model的错误
  • 智慧互联,有序充电--多场景充电
  • yum install libreoffice‘ returned a non-zero
  • Linux知识点 -- 网络基础(一)
  • 【leetcode刷题之路】剑指Offer(4)——分治+排序算法+动态规划
  • 美创科技“签”手柠檬文才学堂,共推高校数据安全建设
  • 【JAVA基础】数据类型,逻辑控制
  • 计算机竞赛 基于图像识别的跌倒检测算法
  • 计算机竞赛 基于大数据的股票量化分析与股价预测系统
  • input子系统