- 博客(6)
- 收藏
- 关注
原创 shared_ptr造成的循环引用&&解决方法和原理(弱引用&&强引用)
内存泄漏及浪费都是每个程序员非常忌讳的事情,但是稍有不慎就会造成不可弥补的损失,这里就这能指针sheard_ptr造成的循环引用及造成循环引用的原因我给大家给出了详细的图解及举例说明,同时也提供了避免这种循环引用的解决办法,就针对弱引用这一点做出了详细的解释,就针对shared_ptr和weak_ptr这两种智能指针的作用和用法也相加说明使得读者可以从代码及图例两方面对循环引用及解决办法有更深的认识。
2016-04-28 00:45:12 11730
原创 (继承及其访问限定符)&&(派生类及其默认成员函数)&&(赋值兼容规则)
◆继承: ★继承概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。C++继承分为公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。在C++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。
2016-04-25 16:05:57 3572
原创 函数模板与模板函数及模板类与模板的特化
函数模板( Function templates)模板(Templates)使得我们可以生成通用的函数,这些函数能够接受任意数据类型的参数,可返回任意类型的值,而不需要对所有可能的数据类型进行函数重载。这在一定程度上实现了宏(macro)的作用。它们的原型定义可以是下面两种中的任何一个:template <class identifier> function_declaration;template <typename identifier> function_declaration;上面两种原
2016-04-25 00:07:50 3871
原创 深入理解运算符重载
函数自定义类的 赋值运算符重载函数的作用与内置纷纷投赋值运算符的作用类似,但是要注意的是,它与 拷贝构造函数与析构函数一样,要注意深拷贝浅拷贝的问题,在没有深拷贝浅拷贝的情况下,如果没有指定默认的赋值运算符重载函数,那么系统将会自动提供一个赋值运算符重载函数。运算符重载的声明方式与方法的声明方式相同,但operator 关键字告诉 编译器,它实际上是一个运算符重载,后面
2016-04-23 01:18:42 1283
原创 深入理解虚表之非虚拟继承及虚拟继承
在C++语言中,每个有 虚函数的类或者虚继承的子类,编译器都会为它生成一个虚拟函数表(简称:虚表),表中的每一个元素都指向一个虚函数的地址。(注意:虚表是从属于类的)此外,编译器会为包含虚函数的类加上一个成员变量,是一个指向该虚函数表的指针(常被称为vptr),每一个由此类别派生出来的类,都有这么一个vptr。虚表指针是从属于对象的。也就是说,如果一个类含有虚表,则该类的所有对象都会含有一个虚表指针,并且该虚表指针指向同一个虚表。虚表的内容是依据类中的虚函数声明次序--填入函数指针。派生类别会继承基础类别的
2016-04-16 09:52:57 1255
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人