温故C++: 类
来源:互联网 发布:订餐管理数据流程图 编辑:程序博客网 时间:2024/05/19 18:42
一、什么是类
类可以说的是C++的基础。
C++中,所有的数据都是类(准确的说是类的实例);C++推崇使用类的去思考和抽象,尽管C++依然支持C风格代码编写,但更提倡使用类去封装、层次化、模块化。
什么是类?类是一系列具有相同或相似属性和行为的实体的集合,是对这些实体的一种模板式抽象。
例如,正常的人都有一头、一身、两手、两脚,可以思考、工作、走路,这些都是所有正常人这个类的都具有的属性和行为;当女娲造人时,女娲会就按照正常人这个类模板捏泥人并赋予他们活力。
C++中,与类对应的术语还有对象或者实例。类是对象(或实例)的抽象集合。例如,【中华民族】是中国13亿人和海外侨胞的集合,而每一个中国人或者海外侨胞是中华民族的一个对象(或实例)
二、类的声明和定义
具体到C++中,类最具象的表示:变量+函数。变量表征相同或相似的属性,函数体现相同或相似的行为。
在C++中,声明一个类很简单:
class 类名;
或者
struct 类名;
(struct关键字是为了和C兼容,但在C++中,struct和class关键字的区别是默认的访问权限和继承权限不同,除此之外均相同)
常见的类定义语法:
class [类名]{ [成员] [成员] ...}[对象名][,对象名][,对象名]...;
(注,上面的语法仅是合法语法的一种,并未考虑模板和继承,实际上C++允许的类定义语法比上面的语法要复杂的多)
一个类定义的示例:
class Head;//头class Body; //身class Hand;//手class Foot;//脚class Person{private: Head head; Body body; Hand leftHand,rightHand; Foot leftFoot; Foot rightFoot;public: void Think(){} void Work(){} void Walk(){}};
像下面的定义都是合法的
class{}; //一个匿名类,不能创建对象class{} a,b,c;//一个匿名类,同时创建对象a,b,c,但不能创建新的对象了
三、类的实例化
类的实例化,或者说生成类的对象,C++中有两种方法:
①类名 对象名(或实例名)
②使用new
例如:
Person ZhangSan,LiSi;Person WangWu;Person *ZhaoLiu=new Person;
①和②的区别在于,①对象的数据保存在栈空间中,②对象保存在堆空间中(再往后,就是资源管理,内存泄露之类的话题了)
上面示意代码,ZhangSan,LiSi,WangWu的数据栈空间,ZhaoLiu在堆空间.
(特别的,我这样看待 Person 和 Person *,它们是两种不同的类,后者为指针类,继承于void *类)
- 温故C++: 类
- C 温故
- C语言温故之一
- 温故C++:Hello World
- 温故C++:入口函数
- c 语言温故
- C++ 类模板温故
- 温故
- 黑马程序员-c语言数组的一些知识温故
- 从今天起——C温故望知新
- OC温故:类的三大特性(封装,继承,多态)
- OC温故:类的三大特性(封装,继承,多态)
- 【C++温故】(2) 类的继承(一)
- 【C++温故】(2) 类的继承(二)
- Python温故
- Python温故
- Python温故
- Python温故
- 我是程序员,我为自己代言
- IO流-13
- opencv codebook背景建模
- windows 7 旗舰版开启administrator
- Oracle smon_scn_time 表 说明
- 温故C++: 类
- linux下更改文件扩展名
- 初学者对linux挂硬盘
- FreeMarker初识,编码错误引发异常
- 常量字符串和静态存储区
- 完成android的manven项目管理
- HttpRuntime的认识与加深理解
- textColor 的值
- UVA 10051 Tower of Cubes