20. 如何写一个C++类的例子

一段关于日志三个等级的代码,日志等级分为 Error、Warning、Info;下面是一段很糟的代码:

#include<iostream>

class Log
{
public:
	enum Level
	{
		// 虽然默认开始是0,但是我这里赋值为0增加了代码的可读性
		LevelError = 0, Warning, Info
	};

private:
	// 默认情况下设置m_LogLevel为所有信息都要被打印
	Level m_LogLevel = Info;

public:
	// 设置Level类型类限制你的代码,只允许设置为Level的枚举值
	void SetLevel(Level level)
	{
		m_LogLevel = level;
	}

	void Error(const char* message)
	{
		if (m_LogLevel >= LevelError)
			std::cout << "[ERROR]: " << message << std::endl;
	}
	void Warn(const char* message)
	{
		if (m_LogLevel >= Warning)
			std::cout << "[WARNING]: " << message << std::endl;
	}
	void Info(const char* message)
	{
		if (m_LogLevel >= Info)
			std::cout << "[INFO]: " << message << std::endl;
	}

};

int main()
{
	Log log;
    // 这里报错,因为E
	log.SetLevel(Log::Error);
	log.Warn("Hello!");
	log.Error("Hello!");
	std::cin.get();
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值