虚函数等的学习中的记录

纯属函数
1纯虚函数只有函数名字,不具有函数功能,不能被调用。
2if派生类中没有对纯虚函数定义,则该虚函数在派生类中仍然为纯虚函数。

抽象类
1 该类中需含有一个纯虚函数
2 不能直接创建对象实例
3 可使用指向抽象类的指针支持运行时的多态性(可以声明抽象类的指针和引用)

虚函数
1 运行时多态必须通过基类对象的引用或指向基类对象的指针的调用才能实现虚函数呈现的动态确定调用版本功能
2 虚函数必须是类的普通成员函数、不能是友元函数、不能是静态成员函数

虚析构函数
1 为何是使用虚析构函数:如果基类析构函数不为虚析构函数,则之会调用基类的析构函数,不会调用派生类的析构函数,因而派生类对象中派生的那部分内存空间无法被析构释放

多态性
1 多态性是指当不同的对象收到相同的消息时,产生不同的动作、行为、方法。
2 静态联编多态性,是编译阶段既可确定的多态性,通过重载机制实现,包括
函数重载和运算符重载。
3 动态联编多态性,是运算阶段才可确定的多态性,通过重载与虚函数机制实现。

重载
1 重载函数常用来实现功能类似而所处理的数据类型不同。
2 区分两个重载函数(函数参数个数不同、函数的参数类型或顺序不同)
3 运算符重载是在编译过程中完成
4 运算符重载包括(为类的成员函数、为类的友元函数)
5 单目运算符(优为成员函数)双目运算符(优为友元函数)

STL容器
1 包括常用的基本的数据结构和基本算法
2 STL技术实现基础是模板
3 STL 体现了C++支持的新的编程范式:泛型编程

拷贝构造函数
1 拷贝构造函数与类同名,没有返回类型,只有一个参数为该类对象的引用
2 若用户没有定义拷贝构造函数,编译系统会自动提供一个默认拷贝构造函数
3 浅拷贝:将一个对象的全部数据成员赋值给另一个对象的数据成员
4 当类的数据成员包括动态分配的资源时,浅拷贝带来问题

vector中尾添加类对象,该类的尻逼构造函数需是const
容器元素是类的时候,(不可使用find函数)。尽量使用find if函数(未确实)

模板
1 模板参数分为模板类型参数和模板非类型参数两种
2 模板类型参数前必须有关键字typename或class表示一个用户定义的或固有的数据类型
3 模板非类型参数前是一个普通的参数声明,并且要求在编译器就确定他的值,他必须是个编译器常量
4 函数模板前向声明语法 : 可以对函数模板进行声明,模板的声明成为前向声明,即先声明模板,在使用模板,然后再文件的后边或其他文件中给出模板的定义
5 函数模板参数表不能为空(如果为空,则只可产生一个函数,模板无意义)
6 模板参数隐式转换的方法1)采用强制类型转换 2)用非模板函数冲裁函数模板
7 函数模板中的每个类型参数在函数参数表中必须至少使用一次
8 在全局域中声明的与模板参数同名的对象、函数或类型,在函数模板中将被隐藏
9 函数模板定义中声明的对象或类型不能与模板参数同名

**vector中find函数返回的迭代器不能直接进行解引用 需判断是否该迭代器越界 **

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值