Debug日志:流对象更名+流运算符重载实验

2024-02-20 10:08

本文主要是介绍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日志:流对象更名+流运算符重载实验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/727869

相关文章

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

golang 日志log与logrus示例详解

《golang日志log与logrus示例详解》log是Go语言标准库中一个简单的日志库,本文给大家介绍golang日志log与logrus示例详解,感兴趣的朋友一起看看吧... 目录一、Go 标准库 log 详解1. 功能特点2. 常用函数3. 示例代码4. 优势和局限二、第三方库 logrus 详解1.