#include<iostream>
#include<string>
using namespace std;
#if0//命名空间//不能定义在函数或者类的内部//可以不连续//std命名空间 提供C++标准库中的所有的功能//尽大可能解决命名冲突//防止名字冲突提供了更加可控的机制//分割全局命名空间,每个命名空间是一个作用域//C名字加长度 解决名字冲突问题
using namespace std;
namespace Name1
{
int a =100;}//可以分割致N个地方
namespace Name2
{
int a =100;}
namespace Name2
{
int b =100;}
int main(){
cout << Name1::a << endl;//访问命名空间名称 使用作用域运算符
cout << Name2::a << endl;return0;}
#endif // 0
#if0//函数默认实参//一旦某个形参被赋予了默认值 他后面的所有形参都必须由默认值//合理设计形参的顺序,尽量不怎么使用的默认值形参出现在前面voidfoo(int x, int y, float z =3.14f){}voidbar(){foo(1,2);foo(1,2,3.14f);}//函数重载//同一作用域内几个函数名字相同但形参列表不同,称为重载//形参数量或形参类型有所不同//不允许两个函数除了返回值
int drawPixmap(int id, int x, int y);//C写法
int drawPixmapEX(int id, int x, int y,int a);
int drawPixmapEXXX(int id, int x, int y,int e);//C++重载写法
int drawPixmap(int id, int x, int y,int z);//重载类型会隐式转换 voida(int, int);voida(double, double);//a(1, 1);//两个都会调用
int main(){return0;}
#endif // 1
#if0//返回值不属于签名的一部分 函数返回值可以被丢弃 所以不能作为重载的一部分
int foo(int, int, int);//foo_int_int_int
int foo(int, int);//foo_int_int//nullptr 空指针//0 = NULL//nullptr 空指针//空指针 不指向任何对象/// 0 : int字面常量//NULL 预处理量 其值是0//nullptr 是nullptr_t 类型的字面值
#endif // 1
#if0
#include<typeinfo>
int main(){
auto i1 =0;//int
auto i2 =3.14f;//float
auto i3 =&i1;//&i1
auto i4 ="hello";//const char *
auto &i5 = i1;//int&
auto i6 ={1,2,3};
cout <<typeid(i1).name << endl;//范围for v数组中值得拷贝
int arr[3]={1,2,3};for(int v : arr)
cout << v << endl;}
#endif // 1
#if0
int main(){
int Arr[6][8]={0};for(auto &v : Arr){for(auto z : v){
cout << z << endl;}}}
#endif // 1