C++封装

本文详细介绍了C++的封装特性,对比了C语言中struct和C++中struct及class的区别,强调了C++封装的优缺点。还探讨了构造器constructor的作用、分类及其定义,并阐述了拷贝构造器copy constructor的使用场景和深拷贝浅拷贝的概念。最后,讨论了析构器destructor在对象销毁时的重要性。
摘要由CSDN通过智能技术生成

封装

功能:对外提供接口,屏蔽数据,对内开放数据
class封装本质:将数据和行为,绑定在一起然后通过对象来完成操作

1. C++封装是对C封装的扩展

C语言封装概念:通过结构体struct将多个类型打包成一体,形成新的类型。
缺点:新类型不包含对数据类的操作。所的有操作都是通过函数的方式。

C++扩展了C语言结构体struct功能,可以用struct封装类,但struct 中所有行为和属性都是public 的(默认)。
优点:对外提供接口,可以直接访问其内部数据。
缺点:没有达到信息隐蔽的功效。

C++的class 可以指定行为和属性的访问方式,默认为pirvate,即屏蔽内部数据,又对外开放接口。

引申

1.1 C和C++中struct区别

三点:
C语言中的struct不能有成员函数,C++可以有
C语言中的struct没有public、private、protected访问权限设定,C++可以有
C语言的struct没有继承关系,C++可以有

1.2 C++中struct和class区别

两点:
默认继承权限不同,class默认private,struct默认public
class可以定义模板参数,像typename,struct不能定义为模板参数

2. 构造器constructor

用途:
构造器是C++中用于初始化对象
分类:
默认构造default constructor
有参构造
拷贝构造copy constructor

MyString(const char *str);//构造
MyString(const MyString &obj);//拷贝构造
MyString();//默认构造
~MyString(void);//析构

定义:
构造器定义
class 类名
{ <

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值