C++学习日志20--变量的作用域与重载


一、变量的作用域

#include <iostream>
#include <string>
using namespace std;
int i = 100;

int main()
{
    
    
	//Variable Scope  局部变量i
	//int i{100}
	  
	for (int i = 1; i < 5; i++)
	{
    
    
		cout << i << "  ";
		//C++11 std::to_string();
		cout << std::to_string(i) + "##";
		cout << endl << ::i << endl;  //一元域解析运算符 可以用于调用全局的变量
	}
	   
	
	//Default Arguments   参数默认值
	cin.get();
	return 0;
}


在这里插入图片描述
如上图所示,在for循环中默认调用局部的i。但是如果使用一元解析运算符::,就会调用全局变量i。

二、函数的重载

//overloading Functions  重载感觉很不错,但好像被模板给降维打击了
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
char min(char c1, char c2);
char min(char c1, char c2, char c3);
int min(int i1, int i2);
int min(int i1, int i2, int i3);
int main()
{
    
    
	int get_return_int = 0;
	char get_return_char;

	get_return_int=min(5, 8,4);
	cout << "get_return_int=  " << get_return_int << endl;

	get_return_char = min('a', 'b','w');
	cout << "get_return_char=  " << get_return_char << endl;

	cin.get();
	return 0;
}
int min(int i1, int i2)
{
    
    
	return(i1 <= i2 ? i1:i2);

}
int min(int i1, int i2,int i3)
{
    
    
	return min(i1, min(i2, i3));

}
char min(char c1,char c2)
{
    
    
	return (c1 <= c2 ? c1 : c2);

}
char min(char c1, char c2,char c3)
{
    
    
	return min(c1,min(c2,c3));

}

在这里插入图片描述
重载指的是: 相同的函数,通过形参类型的不同,来进行区别调用。

猜你喜欢

转载自blog.csdn.net/taiyuezyh/article/details/124142916