类重载全局函数指针
2015-12-26 09:07
323 查看
endl中有类重载全局函数指针的效果.
测试代码
/// @file exam_x_x.cpp /// @brief 类重载全局函数指针 #include <iostream> #include <limits> using namespace std; class CA { public: CA() {} ~CA() {} CA& operator << (char cIn) { cout << cIn; return *this; } CA& operator << (char* pcIn) { if (NULL != pcIn) { cout << pcIn; } return *this; } CA& operator << (int iIn) { cout << iIn; return *this; } typedef CA& (*PFN)(class CA& obj); CA& operator << (PFN pfn) { (*pfn)(*this); return *this; } char* getExpression(int iType = 0) { if (0 == iType) { return ":P"; } return "@#!"; } }; CA& fnMyEndl(CA& obj) { obj << '\n'; return obj; } CA& fnDrawLine(CA& obj) { obj << "----------------------------------------"; return obj; } void fnTestClassFunOverload() { CA a1; a1 << fnDrawLine << fnMyEndl << '0' << " ^_^ " << 0 << fnMyEndl << '1' << " ^_^ " << 1 << fnMyEndl << fnDrawLine << fnMyEndl << a1.getExpression(0) << fnMyEndl; /** run result ---------------------------------------- 0 ^_^ 0 1 ^_^ 1 ---------------------------------------- :P */ } void clear_cin(); int main(int argc, char** argv, char** envp) { fnTestClassFunOverload(); cout << "END, press any key to quit" << endl; clear_cin(); getchar(); return 0; } void clear_cin() { cin.clear(); cin.sync(); }
相关文章推荐
- 北京Uber优步司机奖励政策(12月26日)
- Android中图片占用内存的计算
- Qt Script
- Eclipse右键New菜单项的自定义设置
- 工厂方法模式【Factory Method Pattern 】
- 浅析12306前端优化点
- SQL Server笔试准备 Day2
- 5.3.1.1 ChainMap的例子和技巧
- 5.3.1.1 ChainMap的例子和技巧
- 滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(12月26日)
- 数据结构课程设计---学生成绩管理系统
- h5拖动
- 杭电oj-1115-Lifting the Stone
- Android广播机制
- 关于DP单位的相关权威介绍
- MyEclipse8.5破解方法
- RTSP 协议分析
- 徐小平:创业者不要签无限责任关联合同
- 安卓开发-Activity中finish() onDestroy() 和System.exit()的区别
- bzoj1927[Sdoi2010]星际竞速