花生先生richard

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年5月3日

摘要: 对于算法项目,基本都是被调用方,像mlr是以动态链接库的形式被isearch调用,那mlr模块暴露的公共接口是针对isearch,但对mlr的测试不仅仅是靠这些公共接口就够的,因为其本身的很多逻辑都是在私有的,这就需要我们有时候对其私有方法和成员进行测试。下面有几种打开私有成员和方法的一些办法:1.加宏编译即在你需要打开私有的头文件中加入#define private public/protect蛮暴力的,当然也是最容易操作和简单的。2.利用Gtest的FRIEND_TEST()Private class members are only accessible from within the 阅读全文
posted @ 2012-05-03 10:07 每天吃核桃 阅读(2328) 评论(2) 推荐(1) 编辑

摘要: 下面主要介绍了前向声明概念、用法以及和#include区别前向声明概念(forward declaration)在程序中引入了类类型的B.在声明之后,定义之前,类B是一个不完全类型(incompete type),即已知B是一个类型,但不知道包含哪些成员.不完全类型只能以有限方式使用,不能定义该类型的对象,不完全类型只能用于定义指向该类型的指针及引用,或者用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数.前向声明应用场景当你需要定义两个类或者结构,例如A和B,而这两个类需要互相引用,这时候在定义A的时候,B还没有定义,那怎么引用它呢,这时候就需要前向声明(forward decla 阅读全文
posted @ 2012-05-03 10:05 每天吃核桃 阅读(5623) 评论(0) 推荐(5) 编辑