目录
一、命名空间(Namespace)
含义:命名空间是 C++ 中用于组织代码、避免命名冲突的机制。它将代码划分为独立的作用域,不同命名空间中的同名标识符不会冲突。
1.域
- 同一个域不能定义同一个变量
- 不同域不能定义同一个变量
域包括命名空间域 局部域 全局域,所以命名空间域 局部域 全局域的先后顺序是啥?
示例:
顺序是局部域->全局域 ->展开了命名空间域 or 指定访问命名空间域
2.std cout cin endl <<
- std:c++标准库
- cout:自动识别类型
- cin:流提取运算符
- <<: 流插入运算符
- endl:endl 与 \n 一样
示例:
指定展开:把常用进行展开
- 直接展开会有风险,我们定义如果跟库重名,就报错了
- 建议项目里面不要去展开,建议日常练习可以这么玩
- 项目建议指定访问,不要轻易展开命名空间
- 实在想偷懒可以这样
图中示例:
using std::endl;
using std::count;
二、函数重载(Overloaded Functions)
含义:在同一作用域内,允许定义多个同名函数,但它们的参数列表必须不同(类型、数量、顺序)。编译器根据调用时的参数类型自动匹配函数。
1.参数类型不同
示例:
2.参数个数不同
示例:
void f()
{
cout << "f()" << endl;
}
void f(int a)
{
cout << "f(int a)" << endl;
}
void f() 与 void f(int) 构不构成函数重组?----构成 但是有问题就是无参数存在歧义
3.参数类型顺序不同
示例:
void f(int a, char b)
{
cout << "f(int a)" << endl;
}
void f(char a, int b)
{
cout << "f(int a)" << endl;
}
三、缺省函数(全缺省函数)
含义:函数的参数可以设置默认值,调用时可以不传递这些参数。默认参数必须从右向左连续设置。
1.全缺省
全缺省:所有参数都有默认值
示例:
void Func(int a = 10, int b = 20, int c = 30)
{
cout << "a=" << a << endl;
cout << "b=" << b<< endl;
cout << "c=" << c << endl;
}
int main()
{
Func();
Func(1);
Func(1,2);
Func(1,2,3);
return 0;
}
2.半缺省
半缺省:部分参数有默认值(默认参数必须从右向左)
示例:
void Func(int a , int b = 20, int c =30)
{
cout << "a=" << a << endl;
cout << "b=" << b<< endl;
cout << "c=" << c << endl;
}
int main()
{
//必须从左往右传参
Func(1);
Func(1,2);
Func(1,2,3);
return 0;
}
五. 总结
-
命名空间:避免命名污染。
-
函数重载:提高代码复用性。
-
缺省函数:简化函数调用。