目录
在C++编程中,命名空间、输入/输出和缺省参数是三个非常重要的概念。它们分别帮助我们组织代码、与程序进行交互以及为函数提供默认值。下面,我们将逐一探讨这些概念。
一. 命名空间(namespace)
在C++中,随着代码量的增加,变量、函数和类的数量也会不断增加。如果它们都位于全局作用域中,很容易发生命名冲突。为了避免这种情况,C++引入了命名空间的概念。
命名空间允许我们将相关的标识符组织在一起,并为它们提供一个唯一的名称。这样,即使不同的库或代码片段使用了相同的标识符名称,我们也可以通过指定命名空间来明确区分它们。
例如,我们可以定义一个名为bit
的命名空间,并在其中定义一些变量和函数:
namespace bit {
int num = 50;
void print() {
cout << num << endl;
}
}
要使用命名空间中的成员,我们可以使用作用域解析运算符::
例如:
cout << bit::num << endl;
bit::print();
另外,我们还可以使用using
关键字来简化对命名空间成员的访问。例如:
using bit::num;
using bit::print;
int main() {
cout << num << endl;
print();
return 0;
}
使用using namesapace 可能会导致命名冲突和代码可读性下降,使用需谨慎!!!
二. C++的输入/输出操作
C++提供了cout
和cin
是最常用的输出和输入流对象。
要使用 cout he cin 需要使用头文件 <iostream>,并且引用 std 命名空或者使用 std::
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!" << endl;
int number;
cin >> number;
cout << number << endl;
return 0;
}
endl 是一个操纵符,它插入换行符。
三、缺省参数
缺省参数允许我们在定义函数时为参数提供默认值。这样,在调用函数时,如果省略了某些参数,它们将使用这些默认值。
缺省参数可以分为全缺省参数和半缺省参数。全缺省参数意味着所有参数都有默认值,而半缺省参数则意味着只有部分参数有默认值。
全缺省参数:
void Fun1(int num1 = 30, int num2 = 20, int num3 = 10)
{
cout << num1 << endl;
cout << num2 << endl;
cout << num3 << endl;
}
int main()
{
Fun1(1,2,3);
// 1,2,3
Fun2(1);
// 1,20,10
return 0;
}
我们可以选择提供所有参数、部分参数或不提供任何参数,函数将使用相应的默认值。
半缺省参数则要求从右到左依次给出默认值,中间不能间隔。例如:
void Fun2(int num1, int num2 = 20, int num3 = 30)
{
cout << num1 << endl;
cout << num2 << endl;
cout << num3 << endl;
}
int main()
{
Fun2(3);
return 0;
}
上面的函数num1 需要提供默认值。其他有默认值。
需要注意的是,缺省参数不能在函数声明和定义中同时出现。