目录
一、C++关键字
二、命名空间
1、命名空间的定义
2、命名空间的使用
三、C++输入&&输出
四、缺省参数
1、缺省参数的概念
2、缺省参数的分类
2.1 全缺省参数
2.2 半缺省参数
一、C++关键字
我们在学习C++之前,我相信大家大多数都对C语言多多少少都有所了解,C语言的关键字有32个。而本文中的C++关键字有63个,如下图所示:
二、命名空间
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化, 以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。
1、命名空间的定义
定义命名空间,需要使用到 namespace 关键字,后面跟命名空间的名字,然后接一对{} 即可,{} 中即为命名空间的成员。
如下所示:
//xx为命名空间的名称
namespace xx
{
//命名空间中的内容既可以定义变量,也可以定义函数,还可以定义结构体
int a = 10;
int Add(int left, int right)
{
return left + right;
}
struct Node
{
struct Node* next;
int val;
};
}
//命名空间可以嵌套
namespace N1
{
int a;
int b;
int Add(int left, int right)
{
return left + right;
}
namespace N2
{
int c;
int d;
int Sub(int left, int right)
{
return left - right;
}
}
}
//在同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
//那么下面这个命名空间 xx 会和上面的第一个命名空间 xx 结合在一块
namespace xx
{
int Mul(int left, int right)
{
return left * right;
}
}
注意: 一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。
2、命名空间的使用
命名空间的使用有三种方式:
(1)加命名空间名称及作用域限定符
namespace N
{
int a = 10;
}
int main()
{
printf("%d\n",N::a);
return 0;
}
(2)使用using将命名空间中某个成员引入
namespace N
{
int a = 10;
}
using N::a;
int main()
{
printf("%d\n",a);
return 0;
}
(3)使用using namespace 命名空间名称引入
namespace N
{
int a = 10;
int b = 20;
int Add(int left, int right)
{
return left + right;
}
}
using namespce N;
int main()
{
printf("%d %d\n", a, b);
Add(10, 20);
return 0;
}
注意: 在使用变量的时候要遵循以下两点:(1)当变量不是放在命名空间时,变量默认在局部和全局找。(2)当变量放在命名空间时,变量默认先去命名空间找,然后再去局部和全局找。
三、C++输入&&输出
#include<iostream>
// std是C++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
说明:
(1)使用 cout 标准输出对象(控制台)和 cin 标准输入对象(键盘)时,必须包含 < iostream > 头文件 以及按命名空间使用方法使用 std 。
(2) cout 和 cin 是全局的流对象,endl 是特殊的 C++ 符号,表示换行输出,他们都包含在包含 < iostream > 头文件中。
(3) << 是流插入运算符, >> 是流提取运算符。
(4)使用 C++ 输入输出更方便,不需要像 printf/scanf 输入输出时那样,需要手动控制格式。 C++ 的输入输出可以自动识别变量类型。
(5)实际上 cout 和 cin 分别是 ostream 和 istream 类型的对象,>> 和 << 也涉及运算符重载等知识, 这些知识我们我们后续才会学习,所以我们这里只是简单学习他们的使用。后面我们还有有 一个章节更深入的学习 IO 流用法及原理。
#include <iostream>
using namespace std;
int main()
{
int a;
double b;
char c;
// 可以自动识别变量的类型
cin >> a;
cin >> b >> c;
cout << a << endl;
cout << b << " " << c << endl;
return 0;
}
std 命名空间的使用惯例:
std 是 C++ 标准库的命名空间:
- 在日常练习中,建议直接 using namespace std 即可,这样就很方便。
- using namespace std 展开,标准库就全部暴露出来了,如果我们定义跟库重名的类型/对象/函数,就存在冲突问题。该问题在日常练习中很少出现,但是项目开发中代码较多、规模大,就很容易出现。所以建议在项目开发中使用,像 std::cout 这样使用时指定命名空间 + using std::cout展开常用的库对象/类型等方式。
四、缺省参数
1、缺省参数的概念
缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。
如下所示:
void Func(int a = 1)
{
cout << a << endl;
}
int main()
{
Func(); // 没有传参时,使用参数的默认值
Func(10); // 传参时,使用指定的实参
return 0;
}
2、缺省参数的分类
2.1 全缺省参数
void Func(int a = 10, int b = 20, int c = 30)
{
cout << "a = " << a <<endl;
cout << "b = " << b <<endl;
cout << "c = " << c <<endl;
}
2.2 半缺省参数
void Func(int a, int b = 10, int c = 20)
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl;
}
注意:
- 半缺省参数必须从右往左依次来给出,不能间隔着给;
- 缺省参数不能在函数声明和定义中同时出现;(我们在声明的时候给缺省参数)
- 缺省值必须是常量或者全局变量;
- C语言不支持(编译器不支持)
本文要是有不足的地方,欢迎大家在下面评论,我会在第一时间更正。文章来源:https://www.toymoban.com/news/detail-523408.html
文章来源地址https://www.toymoban.com/news/detail-523408.html
老铁们,记着点赞加关注!!!
到了这里,关于【C++】入门基础知识详解(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!