我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法代劳,该方法也返回单例类唯一的实例。单例大约有两种实现方法:懒汉与饿汉。懒汉:故名思义,不 ...
分类:
编程语言 时间:
2018-09-07 01:03:45
阅读次数:
164
这是暑假学习的第六周,在这周我练习了老师给的例题,还是有一些地方看不懂,这周我对那些不懂的地方用看视频来进行解答,以及进行第二次复习。 目前的我在LeetCode上的一些题目还是不明白,不知道如何编写程序,在能运行出正确的结果,尤其是一些数组和类,指针连用,往往找不准如何才能运行出预期结果,我会进一 ...
分类:
编程语言 时间:
2018-08-18 23:41:06
阅读次数:
200
一、虚函数、覆盖、多态 虚函数:成员函数在定义时添加了 virtual 关键字,这种函数叫虚函数 覆盖:如果在子类中实现与父类中的虚函数具有相同的函数,那么子类中的成员函数会覆盖父类中的成员函数 多态:如果子类中的成员函数对父类中的成员进行了覆盖,当一个指向子类的父类指针或引用了子类的父类引用,使用 ...
分类:
编程语言 时间:
2018-08-14 14:27:53
阅读次数:
151
C++ 的单例模式与线程安全的单例模式(懒汉/饿汉) 1 教科书里的单例模式 我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法代劳,该方法 ...
分类:
其他好文 时间:
2018-07-30 22:40:17
阅读次数:
207
1. 继承与重写run方法 我们封装了Thread类,并设置成员函数run()为纯虚函数,因此我们使用类继承,并重写run方法: 如果用多态的话,可以用vector来保存父类指针,并初始化指向子类引用,不过使用vector<Thread*>我们时常会有困惑,那就是vector作为栈上变量,其程序结束 ...
分类:
编程语言 时间:
2018-07-26 19:59:25
阅读次数:
128
Virtual 关键字起到什么作用 借鉴网友blog, 了解了虚析构函数的作用: 虚析构函数是为了避免内存泄露,而且是当子类中会有指针成员变量时才会使用得到的。 也就说虚析构函数使得在删除指向子类对象的基类指针时可以调用子类的析构函数达到释放子类中堆内存的目的,而防止内存泄露的。 c++中的函数调用 ...
分类:
编程语言 时间:
2018-07-19 13:42:28
阅读次数:
198
虚函数的默认参数值 如果虚函数在基类中的声明带有默认变元值,则通过基类指针调用该函数时,就总是从函数的基类模板中接受默认的变元值。 函数派生类版本中的默认值不起作用。 $ ./virtual 50carton volume is 20400 有虚函数的对象占用的字节数要比没有虚函数的对象多。 纯虚函 ...
分类:
编程语言 时间:
2018-07-17 16:45:21
阅读次数:
172
Q_D的设置意在方便地获取私有类指针,文件为qglobal.h。 d_func()函数如下实现: 这里的d_func()虽然在宏里面,但是如果代入具体的类型,这里面就变成了以Class##Private的私有类指针为返回值,以func为函数名的函数。这里的qGetPtrHelper是 这个模板函数里 ...
分类:
其他好文 时间:
2018-07-09 00:34:30
阅读次数:
175
在C++的继承中,基类和派生类的指针,引用的题目我们都见的很多。前面我也总结过基类指针和派生类指针调用函数的机制。 将派生类引用或指针转换为基类引用或指针被称为向上强制转换(upcasting)即基类指针指向了派生类对象,或者将派生类对象强制转换成了基类指针指向了 与向上强制转换相反,将基类指针或引 ...
分类:
其他好文 时间:
2018-07-07 20:36:30
阅读次数:
167
工厂模式分为3种,即简单工厂模式、工厂方法模式、抽象工厂模式,其实大同小异,总结下来就是: 简单工厂模式:一个工厂,多个产品。产品需要有一个虚基类。通过传入参数,生成具体产品对象,并利用基类指针指向此对象。通过工厂获取此虚基类指针,通过运行时多态 1 // Factory.cpp : 定义控制台应用 ...
分类:
编程语言 时间:
2018-07-06 14:20:26
阅读次数:
199