C++之类和对象的知识
面向对象的基本思想:以谁做什么来表达程序的逻辑,以对象为中心,对象的所有行为都通过调用自己的函数来完成。体现在代码层面就是数据成员调用自己的函数以及通过函数来对自己进行操作. 封装的好处:1.可以在成员函数中做一些必要的限制 2.有时候确实不允许用户改变数据成员 对数据的封装一般用set来对函数赋值 get函数用来读取数据成员
类内定义的成员函数,编译器会将其优先编译为内联函数。对于复杂的成员函数,则编译为普通的函数。 类外定义的成员函数的格式: 返回类型 类名::函数名(参数列表) 分文件类外定义: 定义一个类名.h的头文件,用来保存类的定义; 定义一个类名.cpp的文件,用来保存类中成员函数的定义,定义之前要加上#include "类名.
构造函数的规则和特点: 1、构造函数在对象实例化时被自动调用(有且仅有一次); 2、构造函数与类同名; 3、构造函数没有返回值(连 void 都不用写); 4、构造函数可以有多个重载形式(遵循重载规则,参数个数、类型、调用顺序不同等); 5、即使有多个构造函数,实例化对象时仅用到一个构造函数; 6、用户没有定义构造函数时,编译器自动生成一个构造函数。 内存分区 栈区:定义变量。内存由系统进行控制,释放和分配 堆区:关键字new,需要程序员自己管理释放 全局区:全局变量和静态变量 常量区:字符串和常量
析构函数的唯一作用就是释放内存,所以不允许定义参数
类{命名空间;成员函数;数据成员;} 数据成员{普通数据成员;string;const成员;静态数据成员;对象成员;} 成员函数{属性封装函数;一般功能函数;特殊函数{构造函数{拷贝构造函数;默认构造函数};析构函数}} 成员函数{参数默认值;函数重载;引用;const;} 对象实例化{堆中实例化;栈中实例化;
无欲则刚 关心则乱