类和对象-上

引言:

           在c语言中,关注着的是过程,分析出解决问题的步骤,通过函数调用逐步解决问题。

            在C++中,关注的是对象,将一件事件拆分成不同的对象,靠对象之间的交互完成。

由于C++是c语言发展而来的,所以C++支持C语言操作,在C语言中,描述一个问题,一般用结构体(struct),而在C++中,struct

是一个类,默认情况下,所有成员都是公有的,可以被访问到,C++中还有一个关键字class,他也是类,默认成员是私有的。

类的定义

1.声明和定义全放在类体中,

2、声明放在头文件中,类的定义放在Cpp文件中。

重点:当成员函数在类中定义,编译器会将当成内联函数处理(inline),内联:将函数,展开直接替换到用到的地方,注意:递归和函数复杂,编译器不会将其设为内联。

类的访问限定符及封装

类有三大特性:封装,继承,多态。

这里讲封装,其他以后会介绍。

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

访问限定符:public,private,protect。

private,protect在类外被访问,访问权限作用域从该访问限定符出现到下一个限定符出现为止。

重点:访问限定符只在编译时有用,当映射到内存中,没有任何访问访问限定符的区别。

          封装的好处:防止类内部出现无意的可能破坏对象的用户级错误

类的大小

定义一个空的类型,里面没有任何成员变量和成员函数,对该类型求sizeof,结果是1。

理由:空类型的事例中不包含任何信息,但是当我们声明该类型的实例中,它必须在内存中占有一定的空间,否则无法使用这些实例,至于占多少内存,有编译器决定,VS下是1;

扩展:如果往该类型中添加一个构造函和析构函数,再对该函数求sizeof,结果是1、

理由:构造函数和析构函数其他函数都是放在公共代码区,只要拿到它们的地址即可,编译器不会在实例中添加任何额外的信息。(如果不把成员函数放在公共代码区,每次调用都要在栈上开辟太耗费时间和空间)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值