类
类是一种把数据和功能结合在一起的方法。
使用class来定义一个类,像这样:
class Player{ // 创建一个Player类
int x = 0, y = 0;
int speed = 1;
};
通过类创建一个对象(实例化),像这样:
Player player;
成员变量
可以使用点(.)来访问对象的属性。
player.speed = 2;
但这个代码是错误的。在没有声明的情况下,类中的变量默认是私有的(private)。你无法在外部访问或者改变他。可以将class修改为:
class Player{ // 创建一个Player类
public: // public 意味着我们可以在类以外的任何地方访问这些变量
int x = 0, y = 0;
int speed = 1;
};
成员方法
假设我们的player需要move函数来移动。我们可以使用成员方法。
先看看不用成员方法的move函数:
void Move(Player& player, int xa, int ya){
player.x += xa * player.speed;
player.y += ya * player.speed;
}
Move(player, 2, 3); // 调用
然后是成员方法move:
class Player{
... // 成员方法写在类内部
public:
void Move( int xa, int ya){
x += xa * speed;
y += ya * speed;
}
... // 成员方法写在类内部
}
player.Move(2, 3); // 调用
总结
类是一种把数据和功能结合在一起的方法。
例子中:Player是玩家类,他是把玩家坐标和玩家速度(数据)和移动(功能)结合在一起的方法。这种编程方法极好的简化了代码,也不会让变量看起来杂七杂八,更容易阅读,更加方便。
实战
简单的Log日志类
#include <iostream>
using namespace std;
class Log{
public:
// 三种日志显示等级,常量,用于设置等级是传参
const int ErrorLevel = 0;
const int WarnLevel = 1;
const int InfoLevel = 2;
private:
// 当前的等级,默认是全部输出
int m_MsgLevel = InfoLevel;
public:
void setLevel(const int level){
// 设置等级方法
m_MsgLevel = level;
}
void error(const char * msg){
// 错误日志输出方法
if(m_MsgLevel >= ErrorLevel)
cout << "[ERROR]: " << msg << endl;
}
void warn(const char * msg){
// 警告日志输出方法
if(m_MsgLevel >= WarnLevel)
cout << "[WARN]: " << msg << endl;
}
void info(const char * msg){
// 普通信息日志输出方法
if(m_MsgLevel >= InfoLevel)
cout << "[INFO]: " << msg << endl;
}
};
int main()
{
// 调用测试
Log log;
log.setLevel(log.WarnLevel);
log.warn("Said TvT Warning!");
log.info("Lol =v= Infomation!");
log.error("Oops! Error!");
return 0;
}
标签:const,Player,int,C++,player,speed,class
From: https://www.cnblogs.com/orzmiku/p/17644197.html