如何写一个c++类
###How to Write a C++ Class
视频教程:youtube 原链接:https://www.youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb
本次课程我们只编写一个基本的Log类,主要是为了演示一些类的基本特性
老师说他以后还会慢慢讲更高级版本
这个Log类是用来把我们需要的一些信息打印到控制台,一般在调试程序时非常有用。使编程人员知道程序发生了什么。
控制台就像一个信息转存的地方,并且可以给我们显示,这也是保证程序正确运行的方式。
控制台是内置在操作系统的程序,因此我们可以默认它总是在工作的
Log函数可以控制我们发送给控制台信息的级别
信息有三个级别:error、warning、message(trace)
class Log
{
public:
const int LogLevelError = 0;
const int LogLevelWarning = 1;
const int LogLevelInfo = 2;
private:
int m_LogLevel = LogLevelInfo; //m前缀一般表示私有变量
public:
void SetLevel(int level)
{
m_LogLevel = level;
}
void Error(const char* message)
{
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()
{
Log log;
log.SetLevel(log.LogLevelError);
log.Warn("Hello!");
log.Info("hhh");
log.Error("aaa");
}
输出如下
[ERROR]:aaa
在本次编写的基础的Log类中,首先我们定义了Log的三个级别,用数字代表分别是0,1,2
然后我们把每个级别对应的参数在SetLevel函数中传递给一个外部不可调用更改的私有变量m_LogLevel中。
最后为了使每个级别都能对应输出不同等级的信息,写三个函数,用if语句完成条件设定。