C++类和对象知识点整理一

来源:互联网 发布:椰子油 知乎 编辑:程序博客网 时间:2024/06/08 16:30
C++类和对象知识点整理(1)
1、面向过程和面向对象的区别
面向过程:
a.自顶向下,每一个过程可以看成函数,缺点是不易改动 b.面向过程编程采取的是时间换取空间的策略 
c.面向过程是分析解决问题的步骤,然后用函数把这些步骤一步一步实现,然后在使用的时候一一调用即可
面向对象:
a.面向对象是把构成问题的事物分成各个对象,容易修改,例如加入功能,如果是面向过程的设计,需要改动一连串的步骤,而面向对象只需要改动相应的对象。
b.面向对象内部同时含有面向过程


2、类:类是对象的抽象描述,对象是类的具体实现
与结构体一样,类只是一种复杂数据类型的声明,不占用内存空间,所以在定义类时不能对成员变量进行初始化,因为没有地方存储数据,只有在创建对象以后才会给成员变量分配内存,之歌时候就可以赋值了。而对象是类这种数据类型的一个变量,或者说是通过类这种数据类型创建出来的一份实实在在的数剧,所以占用内存空间


b.类的成员变量称为类的属性(Property),将类的成员函数称为类的方法(Method)。在面向对象的编程语言中,经常把函数(Function)称为方法


3、
类是用户自定义的类型,如果程序中要用到类,必须提前说明,或者使用已经存在的类(如标准数据库中)Class是C++中新增的关键字,专门用来定义类,后面跟类的名称,类名的首字母一般大写,已和其他的标识符区分开,{}内部是类所包含的成员变量和成员函数,他们统称为类的成员


4、创建对象
假设现在定义好了Student类
Student liLei;//定义对象
Student allStu[100]//该语句创建了一个allStu数组。数组拥有100个元素,每一个
元素都是Student类型的对象


5、创建对象以后,可以使用点号.来访问成员变量(Public)和成员函数,这和通过结构体变量来访问它的成员类似。
Student stu;
stu.name = "小明";
stu.say();


6、使用对象指针
C语言中经典的指针在C++中仍然广泛的使用,尤其是指向对象的指针,上面的代码中创建的对象stu是在栈上分配的内存,需要使用&获取它的地址:列如
Student stu;
Student *pStu = &stu;
pStu 是一个指针,它指向Student类型的数据
也就是通过Student创建出来的对象
当然,你也可以在堆上创建对象,这个时候就需要使用前面讲到的new关键字,列如:Student* pStu = new Student


在栈上创建出来的对象都以一个名字,比如stu,使用指针指向她不是必须的,但是通过new创建出来的对象就不一样了,它在堆上分配内存,没有名字,只能得到一个指向他的指针,所以必须使用一个指针变量来接收这个指针,借助指针来访问它的成员变量或者是成员函数


栈内存是程序自动管理的,不能使用delete删除在栈上创建的对象,堆内存是由程序员管理,对象使用完毕后可以通过delete删除(在实际开发中,new和delete往往是成对出现的,以保证及时删除不再使用的对象,防止无用内存堆积)


因此得到两种创建对象的方式:一种是在栈上创建,形式和定义普通变量类似,另一种是在队上创建,必须要用一个指针指向它,delete要删除,防止内存泄漏

































原创粉丝点击