C++读书笔记(四)
来源:互联网 发布:淘宝联盟可以用红包吗 编辑:程序博客网 时间:2024/05/16 12:25
跟踪自己的类
//输出重定向
class Channel
{
public:
Channel(ostream* os = &cout) : Trace_File(os) { }
void Reset(ostream *os) { Trace_File = os;}
private:
friend class Trace;
ostream* Trace_File;
};
通过重定向实现
class Trace
{
public:
Trace(const char *s, Channel *c) : m_name(s), m_cp(c)
{
if (m_cp->Trace_File)
*m_cp->Trace_File<<"begin"<<m_name<<endl;
}
~Trace()
{
if (m_cp->Trace_File)
*m_cp->Trace_File<<"end"<<m_name<<endl;
}
private:
Channel *m_cp;
const char* m_name;
};
//创建死代码
//背景:测试类的一个潜在问题,即使关闭了输出,
//测试trace_file时进入和退出每个函数都要耗费时间和空间。
//创建死代码的话,可以在不必重写用户代码的前提下免除几乎所有代码生成的开销
static const int debug = 0;
class Trace
{
public:
Trace(const char *s, Channel *c) : m_name(s), m_cp(c)
{
if (m_cp->Trace_File)
*m_cp->Trace_File<<"begin"<<m_name<<endl;
}
~Trace()
{
if (m_cp->Trace_File)
*m_cp->Trace_File<<"end"<<m_name<<endl;
}
private:
Channel *m_cp;
const char* m_name;
};
- C++Primer读书笔记(四)
- 《Essential C++》读书笔记(四)
- 《Effective C++》读书笔记(四)
- 《Effective C++》读书笔记(四) 资源管理
- 《C++Primer》读书笔记(四)表达式
- 读书笔记--C陷阱与缺陷(四)
- 读书笔记--C陷阱与缺陷(四)
- 读书笔记--C陷阱与缺陷(四)
- 《C和指针》读书笔记(四)
- 【Accelerated C++】读书笔记(四)
- 《Accelerate C++》读书笔记(四)
- <<Effective C++>读书笔记(四)
- 《C++primer》读书笔记四
- 《C++Premier》读书笔记之四
- 《Objective-C程序设计(第四版)》读书笔记(四)
- 《C语言参悟之旅》-读书笔记(四)
- 《C语言参悟之旅》-读书笔记(四)
- 《C语言参悟之旅》-读书笔记(四)
- 正确使用String类应注意的几点
- net自动化测试之道API测试-用空串测试
- UVALive 4061 Photographic Tour
- General Dlist Implement by C
- SliverLight4.0的MVVM入门教程
- C++读书笔记(四)
- 这四天安装Trac的总结(不含安装过程)
- SmartUpload 执行到 upload() 方法不再往下执行
- Asp.net Mvc 和 jQuery UI使用
- [小说连载]张小庆,在路上(15)- 改去昌平买房
- Tyvj 1491 序列操作
- Visual C++ 6.0环境配置
- linux下apache与tomcat整合
- 以自己的方式来理解java三大特性之一的封装