C++ ——类与对象(基本介绍)

  • 面向过程:解决一件事情,一步一步环环相扣,通过函数调用来解决问题
  • 面向对象:以对象为单位解决问题,将一件事情分为不同的对象,靠对象的交互来完成问题
  • 为什么要有类?类是一个打包的概念。一个人有身高体重职业等等很多数据,也有吃饭睡觉很多行为。那么用类来描述人这个对象就是将他所有的特性都打包在一起。获取时就非常方便和全面
    类中的元素称为类的成员:类中的数据称为类的属性或者成员变量; 类中的函数称为类的方法或者成员函数。

类的定义

structclass都可以
分开定义的话,声明放在.h文件,实现放在.cpp文件
在这里插入图片描述
在这里插入图片描述
区别:struct定义的类成员变量是公开(public)的;而class是隐藏(private)的;

类的封装

对于人来说是有自己公开的部分和自己的隐私的,类也一样,自己成员变量对外是要有访问权限的:pubilc、private、protected
public修饰的成员变量可以被访问(指针类型用->、其他类型用.)后两种不可以。 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止。
在类里面,成员函数是可以访问protected/private成员变量的
封装:本质上是一种管理。我们使用protected/private把成员封装起来。开放一些共有的成员函数对成员合理的访问。就像景点一样,我们要把景物保护起来,在买门票的合理情况下参观。
将一个对象的相关的数据和行为定义在一起,通过访问限定符起到保护和访问的作用,还可以将不需要公开的行为代码打包在一起,只提供一个接口,降低使用者的使用成本。

类的作用域

在类之外调用成员函数需要用::作用域解析符来指明函数在哪个类域。用函数名+类域才能唯一确定一个函数。
成员函数在定义时要加上类域,在使用时通过./->来访问。
实例化:在类定义好之后实际还没有分配存储空间,当类实例化一个对象就会占用实际的物理空间。一个类可以有多个实例化对象。
类的大小:这里讨论的当然是类实例化出来这个对象的占内存的大小
在这里插入图片描述

一个类的大小,实际就是该类中”成员变量”之和,当然也要进行内存对齐,注意空类的大小,空类比较特殊,编译器给了空类一个字节来唯一标识这个类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值