- 博客(8)
- 收藏
- 关注
原创 C++学习模板篇之友元函数友元类
一、类的友元函数分为友元全局函数和友元成员函数两种类型。1.友元全局函数形式如下图所示,使用friend关键字加普通函数声明的方式来声明一个类的友元函数,与普通函数的区别还在于参数上,必须传递当前这个类的对象或者引用或者指针,即必须使该友元函数能够访问到这个类的私有成员变量或者是保护的数据成员或者是私有或保护的成员函数。这样才能体现出友元的特性来。2.友元全局函数的定义和使
2016-02-24 11:47:23 1484
原创 C++学习模板篇(静态数据成员与静态成员函数)
前面学过:普通数据成员和普通的成员函数常数据成员和常成员函数今天学习:静态数据成员和静态成员函数1.如何声明直接在普通的数据成员和普通的成员函数的前面加上static就成了静态的。静态成员变量属于类本身,而不属于某个对象,所以它不依赖于对象的实例化,不会在类的构造函数中初始化,它的初始化往往单独进行,如上图所示,初始化时不再加static关键字,必须定义在类外,
2016-02-22 18:09:11 3205
原创 C++学习之模板篇(类模板)
1.为什么要有类模板?是因为在很多使用场合下,一个类会被使用很多次,用的时候呢也发现很多重复的地方,只有它的数据类型不同,这个时候就要用到类模板。2.单参数类模板形式(1)声明形式单参数类模板形式如下,可见与函数模板比较,声明模板的方式相同,都是使用template,不同的是函数模板是参数中会使用类型T,而类模板是是数据成员会使用类型T,需要注意的是类模板中成员函数的声
2016-02-22 10:45:28 2567 2
原创 C++学习之多态篇(异常处理)
一、异常处理概念:对有可能发生异常的地方做出预见性的安排,异常处理过程如下图所示:f1()出现异常,就会抛给调用者f2(),如果f2()处理不了就继续往上抛给它的调用者,依次类推。。。2.使用例子:因为 1是整数,所以catch里面的数据类型是int,如果想获得1的值,就穿int &
2016-02-03 15:28:19 1033
原创 C++学习之多态篇(运行时类型识别--RTTI(typeid和dynamic_cast))
1.使用方式:dynamic_cast的使用说明:(1)只能有用于指针和引用的转换,将父类指针或引用转换为子类指针和引用(2)要转换的类型中必须包含虚函数(3)如果转换成功,返回的就是子类的地址,如果转换失败,返回NULLtypeid的使用说明:(1)返回一个type_info对象的引用,type_info类的结构见下图:(2)如果想通过基类的指针获得派生类
2016-02-03 14:33:00 2840 1
原创 C++学习之多态篇(纯虚函数和虚函数的区别)
一、两者区别与联系1. 虚函数和纯虚函数可以定义在同一个类(class)中,含有纯虚函数的类被称为抽象类(abstract class),而只含有虚函数的类(class)不能被称为抽象类(abstract class)。 2. 虚函数可以被直接使用,也可以被子类(sub class)重载以后以多态的形式调用,而纯虚函数必须在子类(sub class)中实现该函数才可以使用
2016-02-03 11:25:45 708
原创 C++学习之多态篇(纯虚函数和接口类)
1.纯虚函数形式2.纯虚函数内存结构分析:Shape类中有一个虚函数和纯虚函数,所以它肯定有一个虚函数表和一个虚函数表指针,在虚函数表中如果是一个普通的虚函数,那么这个虚函数的函数指针就是一个有意义的值,比如0x3355,如果是一个纯虚函数,那么这个值就是0。3.抽象类纯虚函数肯定是某个类的成员函数,包含纯虚函数的类就叫做抽象类。抽象类的特点:(1)因为纯虚函数无法
2016-02-03 11:11:11 4424
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人