//c++中动态内存分配用new,C中用malloc
//内联函数--
//函数重载 名字相同,参数个数或者参数类型不同,定义函数时最右边参数可以缺省
//缺省参数提高程序的可扩充性
//结构化程序设计没有封装和隐藏(接口)
//面向对象程序设计 函数可重用性------程序规模大的时候
//面向对象程序设计 = 类+类+类++++类
//四大基本特点: 抽象 封装 继承 多态
//面向对象的程序设计模式
//
//成员变量和成员函数
//对象占用的内存空间和struct一样的。
//对象值包含成员变量,成员函数不占用对象内存空间
//没有数是公有的,就是私有的
//构造函数,名字与类名相同,可以有参数,不能有返回值
//构造函数给对象进行初始化,不写就是默认的无参数的构造函数,不做任何操作
//有对象就有构造函数,
//一个类可以有多个构造函数
//有构造函数,对象就要初始化
//复制构造函数,一个类有一个复制构造函数
//复制构造函数作用:1,一个对象初始化同类的另一个对象、
//2、一个函数参数是对象,就是用的复制构造函数
//3,、返回值是对象时,用的复制构造函数
//一个类可以有多个构造函数,但是只有一个析构函数
//析构函数没有参数,没有返回值
//静态成员函数中不能使用this指针,静态成员函数的参数个数没有多一个!
//静态成员函数没有作用于哪一个对象,放在对象内存外部
//静态成员变量是每一个对象共享的,sizeof不会计算静态成员变量
//静态成员不需要通过对象就可以进行访问
//静态成员变量和静态成员函数本质是全局变量和全局函数
//静态成员变量要初始化或者申明
//静态成员函数中不能访问费静态成员变量及函数--因为静态成员函数不属于哪一个对象
//先执行成员对象的构造函数,然后执行封闭类的构造函数
//先构造的就后析构,先初始化的后消亡
//先执行封闭类的析构函数,后执行成员对象的析构函数
//常量对象 加const,可以执行常量成员函数,因为其不会修改成员值
//常量成员函数 不能修成员函数的值(除了static变量),也不能调用同类的非常量成员函数(除了static函数外)
//两个成员函数,名字和参数表都一样,但是一个加了const,这个算是函数重载,而不是重复定义
//不能通过常引用修改其引用的变量---引用一般加const,防止数据被修改
//友员:两种 友员函数 友员类
//构造函数和析构函数也可以声明为友员函数
//友员类之间的关系不能传递,不能继承
//派生类 --
//派生类内存空间包含基类对象内存空间,基类内存在前,派生在后
//派生类覆盖基类中相同的函数,可以调用基类的这个函数
//继承 目的 :代码重用
//类 与 类 的关系: 继承 或者 复合
//不要定义同名的成员变量,但是可以同名的成员函数
//派生类初始化基类对象-初始化列表
//public继承的复制规则
//多态----提高程序的可扩充性
//构造函数和静态成员函数不能是虚函数
//派生类中和基类中虚函数同名同参数的函数,不加vitual也自动成为虚函数
//多态的实现---虚函数表,占用内存空间前面4或8(64位系统)个字节
//基类的析构函数是虚函数,其派生类统统都成了虚函数,建议这么做
//纯虚函数,没有函数体=0,,包含纯虚函数就是抽象类,其不能创建抽象类的对象
//函数模板
//类模板
//STL
//输入输出
//运算符重载