彻底搞懂 C++ 中的命名空间、重载函数与缺省参数

目录

一、命名空间(Namespace)

1.域

2.std  cout cin endl <<

二、函数重载(Overloaded Functions)

1.参数类型不同

2.参数个数不同

3.参数类型顺序不同

三、缺省函数(全缺省函数)

1.全缺省

2.半缺省

五. 总结


一、命名空间(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;
}

五. 总结
  • 命名空间:避免命名污染。

  • 函数重载:提高代码复用性。

  • 缺省函数:简化函数调用。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值