将成员变量隐藏在函数接口的背后,可以为“所有可能的实现”提供弹性, 假设我们有一个public成员变量,而我们最终取消了它,多少代码可能会被破坏呢?那是一个不可知的大量. protected成员变量就像public成员一样缺乏封装性(所有使用它的derived都会被破坏)…
工厂方法模式(Virtual Constructor/Polymorphic Factory) 工厂方法模式是类的创建模式,又叫做虚拟构造子模式(Virtual Constructor)或者多态性工厂模式(Polymorphic Factory). 工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中. 那么工厂方法模式是在什么场景下使用呢?下面就举例说明: 相信很多人都做过导入导出功能,就拿导出功能来说.有这么一个需求:XX系统需要支持对数据库中的员工薪资进行导出,并…
本文为mariadb官方手册:DECLARE Variable的译文. 原文:https://mariadb.com/kb/en/library/declare-variable/我提交到MariaDB官方手册的译文:https://mariadb.com/kb/zh-cn/declare-variable/ 语法: DECLARE var_name [, var_name] ... type [DEFAULT value] 描述 该语句用在该语句用来在存储程序stored programs中声…
本文为mariadb官方手册:DECLARE HANDLER的译文. 原文:https://mariadb.com/kb/en/library/declare-handler/我提交到MariaDB官方手册的译文:https://mariadb.com/kb/zh-cn/declare-handler/…
[EffectiveC++]item34:区分接口继承和实现继承…
最近整理前人的代码,有好多的hint和waring, 其中整理到Method 'CreateNew' hides virtual method of base type 'TCustomForm', 搞了好一会, 记录下来. 之前这个方法没有加上 reintroduce;overload; Reintroduce: 在子孙类中要声明一个与祖先类中参数不同的方法的时候用Reintroduce,其实你不使用reintroduce也会覆盖屏蔽父类的方法的但是会产生一个警告,     使用了这个关键字,…
本质上是说了:   Template Pattern & Strategy Pattern 详细见<C++设计模式 23种设计模式.pdf 55页> 宁可要组合 不要继承. —————————————————————————————————————————— 要先看懂策略模式…
前面有个<angular4.0如何引入外部插件1:import方案>,但是有局限,因为方案1需要用到@types这个东西. 但是并不是每一个插件都有@types,所以现在写个方案2. 拿引入微信SDK举个栗子,小伙伴们,快搬凳子. 大致步骤和<angular4.0如何引入外部插件1:import方案>是相同的. 区别是不使用import导入插件.所以也就不需要使用@types识别操作了. Steps1:引入WX的SDK文件 <script src="http://r…
先看看: ZT C++ 重载.覆盖和隐藏的区别 http://www.cnblogs.com/jeanschen/p/3405987.html 隐藏是指派生类的函数屏蔽了与其同名的基类函数,规则如下: 1) 如果派生类的函数与基类的函数同名,但是参数不同.此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆). 2) 如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字.此时,基类的函数被隐藏(注意别与覆盖混淆). #include <ios…