C++:如何写一个C++类

发布时间:2024年01月19日

2024年1月19日? 内容整理自The Cherno:C++ 系列

--------------------------------------------------------------------------------------------------------------------------------

今天我们要写一个log类,它可以将我们想要的信息打印到控制台----在游戏或者应用程序中,如果我们想知道发生了什么,就可以将事物的状态打印到控制台。

应用程序中的控制台就像一个放信息的地方,我们可以用它来打印出发生了什么,它也可以保证我们的代码在正确地工作。

为什么偏要写“日志类”而不是其他类呢?

因为日志系统可以根据我的需要,在控制台中打印我们想要知道的信息,日志系统对于调试和开发来说非常重要,所以花时间在开发日志系统上,是非常值得的。

日志信息分为几个级别:错误、警告、信息或跟踪。日志设置为警告时,控制台就只会打印警告和错误,而不会打印跟踪信息。

第一步 先创造出一个Log类,程序框架如下
第二步? 考察Log类将会怎样被使用

第三步? 倒回填空? 完整代码如下
#include <iostream>

class Log{
public:
    //0表示错误,1表示警告,2表示信息或跟踪
    const int LogLevelError=0;
    const int LogLevelWarning=1;
    const int LogLevelInfo=2;
private:
    //约定加前缀_m表示类内部的私有成员变量
    int m_LogLevel=2;//默认情况设置为2,意思是所有的东西都会被打印出来
public:
    void SetLevel(int level){
        m_LogLevel=level;
        //引用类内部的私有成员变量,而level只是局部变量
    }
    void Error(const char* message){
        //只有在level为错误时打印错误的信息
        if(m_LogLevel>=LogLevelError)
        std::cout<<"[Error]"<<message<<std::endl;
    }
    void Warn(const char* message){
        if(m_LogLevel>=LogLevelWarning)
        std::cout<<"[Warning]"<<message<<std::endl;
    }
    void Info(const char* message){
        if(m_LogLevel>=LogLevelInfo)
        std::cout<<"[Info]"<<message<<std::endl;
    }

};

int main(){
    //01.实例化Log
    Log log1;
    //02.我想制定某种日志级别,这个级别作为一个实际参数,0表示错误,1表示警告,2表示信息或跟踪
    log1.SetLevel(log1.LogLevelWarning);//设置日志级别为警告,这意味着只有警告信息才会被打印出来
    //03.我可能还会想将该警告信息打印出来
    log1.Warn("Facing Uncertainty is Dangerous!!");
    //现在我大致知道我想要创造的log类是什么样子了,我应该倒回class去填空。
    return 0;
}
?再尝试打印Info信息

文章来源:https://blog.csdn.net/m0_72979740/article/details/135697496
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。