一、变量的作用域
#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));
}
重载指的是: 相同的函数,通过形参类型的不同,来进行区别调用。