0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C++三大特性:封装的概念原理

如意 来源:CSDN 作者:cherrydreamsover 2020-06-29 14:28 次阅读

我们都知道C++有三大特性:封装、继承、多态,之前我总结过继承的知识点,现在来总结一下封装的相关知识!

一、什么是封装?

封装:隐藏对象的属性和实现细节,仅对外公开接口和对象进行交互,将数据和操作数据的方法进行有机结合。

说明:

函数是封装的一种形式:函数所执行的细节行为被封装在函数本身这个更大的实体中,被封装的元素隐藏了它们的实现细节–可以调用一个函数但是不能够访问函数所执行的语句。

访问限定符

(1)public(共有)

(2)protected(保护)

(3)private(私有)

说明:

(1)public成员可以在类外直接访问。

(2)protected和private成员在类外(在此将这两种限定符都可以看成是私有的,在继承出区别)不能够访问。

(3)它们的作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止。

(4)class的默认访问权限是private,而struct为public型(因为struct要兼容C)。C++常用的是class

(5)类外:即脱离了类的作用域或者说访问时不在类的成员函数中。

因此C++的封装和函数有一些不同,它能够更加灵活的满足不同对象调用的需求,因此封装相当于是class+访问限定符

注意:访问限定符本质上是给编译器使用的,数据放在内存中是没有任何限制的

来段代码看看:

C++三大特性:封装的概念原理

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 封装
    +关注

    关注

    124

    文章

    7281

    浏览量

    141104
  • C++
    C++
    +关注

    关注

    21

    文章

    2066

    浏览量

    72900
收藏 人收藏

    评论

    相关推荐

    STM32CubeMX如何在*.c源文件中使用c++特性

    用arm-xxx-gcc编译器进行编译,*.cpp文件会使用arm-xxx-g++编译器进行编译,STM32CubeMX生成文件都是*.c源文件,在不修改文件名后缀情况下,我现在是想在*.c源文件中使用c++
    发表于 04-25 06:15

    C++数据结构:排序基本概念

    C++
    电路设计
    发布于 :2023年01月05日 15:53:02

    C++数据结构:树的基本概念

    C++
    电路设计
    发布于 :2023年01月05日 15:53:35

    C++小白自学基础教程之继承的概念01

    C++
    电子学习
    发布于 :2023年01月12日 21:05:42

    C++小白自学基础教程之c++中的目运算符15

    C++
    电子学习
    发布于 :2023年01月12日 21:11:56

    c++经典书籍

    。书中不但新增大量教学辅助内容,用于强调重要的知识点,提醒常见的错误,推荐优秀的编程实践,给出使用提示,还包含大量来自实战的示例和习题。   对C++基本概念和技术全面而且权威的阐述,对现代C++编程风格的强调,使本书成为
    发表于 10-24 21:06

    Google C++编程指南

    Google C++编程指南目标:增强代码一致性,创建通用的、必需的习惯用语和模式可以使代码更加容易理解C++是一门包含大量高级特性的巨型语言,某些情况下,我们会限制甚至禁止使用某些特性
    发表于 11-29 09:15

    C++笔记004:C++类通俗点说—— C结构体复习

    ` 本帖最后由 tyyhmtyyhm 于 2018-5-12 09:37 编辑 C++类通俗点说—— C结构体复习核心:C++的类就是对C语言的结构体进行了扩展,
    发表于 03-05 12:53

    MATLAB代码转c++封装dll供labview调用

    MATLAB可以通过指针读取buffer里面的图像吗,最近涉及MATLAB与labview混合编程,需要将MATLAB代码转成c++封装成dll。其中MATLAB代码部分卡在了不知道如何通过指针读取buffer里面的图像。有大神可以帮忙吗,qq704521178
    发表于 06-11 11:28

    请问STM32 C++底层封装怎么实现?

    DMA和中断为什么使用指针?请问STM32 C++底层封装怎么实现?
    发表于 11-22 06:08

    STM32 C++代码封装初探相关资料推荐

    一、STM32与面向对象编程上一章中提到了,C++的核心之一就在于面向对象思想。相比C语言常用的面向过程编程,面向对象编程的优势在于继承、封装、多态的特性,利用这种思想更有助于我们的程
    发表于 02-11 06:05

    C++:重载、重定义和重写的概念和区分

    C++中我们经常会遇见“重载、重定义、重写”的概念,三个概念名字很像,很容易混淆,今天我们对三者进行一个区分。
    的头像 发表于 06-29 11:33 4871次阅读

    C++封装:类的作用域和实例化

    C++封装:类的作用域和实例化
    的头像 发表于 06-29 14:28 3309次阅读
    <b class='flag-5'>C++</b><b class='flag-5'>封装</b>:类的作用域和实例化

    C++封装:this指针

    C++封装:this指针
    的头像 发表于 06-29 14:37 3231次阅读
    <b class='flag-5'>C++</b><b class='flag-5'>封装</b>:this指针

    STM32 C++编程系列二:STM32 C++代码封装初探

    一、STM32与面向对象编程上一章中提到了,C++的核心之一就在于面向对象思想。相比C语言常用的面向过程编程,面向对象编程的优势在于继承、封装、多态的特性,利用这种思想更有助于我们的程序实现模块化
    发表于 12-08 11:06 12次下载
    STM32 <b class='flag-5'>C++</b>编程系列二:STM32 <b class='flag-5'>C++</b>代码<b class='flag-5'>封装</b>初探