C++基础复习

C++—Cherno

一、C++中的引用

#include<iostream>
#include"Log.h"

void Increment(int& value) {
	value++;
}

int main()
{
	
	int a = 5;
	int b = 10;
	//引用不能只声明不赋值
	//&就和数据类型差不多,要和int写在一起,int&
	int& ref = a;
	ref = b;
	Increment(ref);
	Log(a);	
	Log(ref);
	/*
			引用直接赋值一次
			int& ref = a;
			ref = b;
			这是不正确的,这样会把b的值赋值给a,就是a等于10,b等于10
	*/
	
}

二、类

#include<iostream>
#include"Log.h"

class Player
{
public:
	//默认情况下是private
	int x, y;
	int speed;
	void Move(int arg1, int arg2) {
		x = x * arg1;
		y = y * arg2;
	}
};

int main() {
	Player player;
	player.x = 2;
	player.y = 3;
	player.Move(2, 3);
	std::cout << "x=" << player.x << std::endl;
	std::cout<< "y=" << player.y << std::endl;
}

不需要刻意的去写类,类只是糖衣炮弹,辅助程序员的,没有类也能很好的去用,只有C也不是不能用。

三、结构体和类

几乎没有区别,唯一区别是,默认情况下,类是私有的,如果你没有指定任何可见的修饰符,类的成员是不可见的。

struct默认是公有的。

如果仅仅是为了表示一些数据,我会用结构体struct

如果是实现一个比较复杂的类,有很多功能,又要继承,我会用class

四、如何写一个C++类

#include<iostream>
#include"Log.h"

/*
	message大部分情况下是无用的信息,一般不需要输出
	任务:
		1、如果当前日志级别为0,则只输出Info信息
		2、如果当前日志级别为1,则不打印Info级别的信息
		3、如果当前日志级别为2,则只输出Error信息
*/
class LOG
{
public:
	int info = 0;
	int warning = 1;
	int error = 2;
private:
	//默认情况下当前日志的提示等级是警告
	int currentLevel = warning;

//func
public:
	void setLevel(int level) 
	{
		currentLevel = level;
	}
	//Info
	void Info(const char* message) {
		if(currentLevel == info)
			std::cout << "【Message】" << message << std::endl;
	}

	//Warn
	void Warn(const char* message) {
		if(currentLevel == warning)
			std::cout << "【Warning】" << message << std::endl;
	}

	//Error
	void Error(const char* message) {
		if(currentLevel >= warning)
		std::cout << "【Error】" << message << std::endl;
	}
};

int main() {
	LOG log;
	log.setLevel(log.warning);
	log.Info("你好");
	log.Warn("你好");
	log.Error("你好");
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值