本文主要是介绍Debug日志:流对象更名+流运算符重载实验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
学堂在线《面向对象程序设计》第四章唯一的一道编程题,调试了两天,依然没有一点眉目。题目如下:
在程序中输出一些信息,是一种很有效的调试方法。请设计实现一个名为Log的类,能方便输出调试信息,要求满足如下附件所写的要求:
简单罗列一下,解这道题需要的知识点:
1,流对象更名:从ostream输出流类的cout对象,改名为Log类的obj对象,同样要具有输出流对象的功能;
2,流插入运算符 << 重载;
3,也是最难的一点:将level(string)设置成能控制后面的流插入操作是否执行的控制符(可是iostream头文件中没有哪个控制符有这个功能)。
知识点2在mooc视频中徐明星老师已经讲过了;知识点1在百度百科cout词条下发现一个代码样例:
#include <cstdio> // 在C和一些古老的C++中是stdio.h,新标准为了使标准库// 的头文件与用户头文件区别开,均推荐使用不用扩展名// 的版本,对于原有C库,不用扩展名时头文件名前面要加c
class MyOutstream
{public:const MyOutstream& operator << (int value)const;//对整型变量的重载const MyOutstream& operator << (char* str)const;//对字符串型的重载
};
const MyOutstream& MyOutstream::operator <<(int value)const
{printf("%d",value);return* this;//注意这个返回……
}
const MyOutstream& MyOutstream::operator <<(char* str)const
{printf("%s",str);return* this;//同样,这里也留意一下……
}
MyOutstream myout;//随时随地为我们服务的全局对象myout
int main()
{int a=2003;char* myStr="Hello,World!";myout << myStr << "\n";return 0;
}
知识点3调了两天,依然毫无进展。
这篇关于Debug日志:流对象更名+流运算符重载实验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!