引用:
相当于对象或变量的别名,声明的时候需要直接进行初始化。
堆与栈:
栈:函数参数、局部变量由编译器负责回收
堆:动态分配的内存块,由程序员进行释放,程序结束系统进行回收
内存泄漏问题:需要用free、delete进行删除
指针:* & 分别记为取值和取地址
重载:
类与对象:
类的定义一般放在.h中类的实现一般放在.cpp
类外定义成员函数:
返回类型 类名::成员函数名(参数)
{
实现体;
}
显式定义:在上述结构前冠以关键字inline
private的内容一般由public的成员函数来访问
构造函数:
一般应该被声明为public类型
带缺省参数的构造函数可在形参后面直接赋值,所赋值直接为缺省值(缺省值的定义应当在无缺省值的右边)另外要防止二义性的出现
拷贝构造函数:其形参为类的引用,系统会产生缺省的拷贝构造函数功能。
拷贝构造函数仅在以下三种情况下被调用:1.用一个对象初始化另一个对象时 2.一个对象被作为函数的参数时 3.当对象作为函数值返回时
系统会尝试将含有一个参数的构造函数自动进行类型转换,若存在二义性则放弃
析构函数:
一个类中只能定义一个析构函数,当用到动态内存时要用delete对内存进行释放,析构函数释放的空间是构造函数分配的,不是new出来的
指向对象的指针成员:
对象指针名->成员名
等价于
(*对象指针名).成员名
this一般指向正在操作的对象
前向引用:
在完成对整个类的定义之前不能定义对象,但可以经过前向引用声明,声明对象引用
静态成员:
需要在类外进行定义和初始化,并且不需创建对象。
静态成员函数只能引用属于该类的静态数据成员或静态成员函数
类指针
继承与派生
私有继承:
共有继承::或:public
protected可以被派生类调用 不能被具体的对象调用
子类继承父类出构造和析构之外的所有成员
派生类的构造函数除了初始化自己的数据成员外,还须初始化调用基类的数据成员(如果类中含有基类对象的话)
派生的构造函数: 派生类名(基类形参,...本类形参):基类名1(参数),基类名2(参数),...<子对象名>(<参数表>)
{
本类成员初始化赋值;
}
访问声明:针对私有派生
访问声明不应声明加类型、也不应说明函数的参数
只能改变保护段和公有段的成员在派生类中的访问域,且不能改变基类中的可访问性
多继承:
二义性问题,成员的访问权限并不能区分有二义性的同名成员
虚基类:
用于有共同基类的场合
虚基类的构造函数只会被调用一次
网友评论