C++是在C语言基础上发展起来的一门语言,它最初的作用是来解决部分C语言的弊端。
初学C++,我们先要认识C++的几个作用域,有全局域,局部域,命名空间域等等。
1.命名空间
在C语言中,我们在定义变量时,一些变量名可能于库函数中的关键字重名冲突。那么,在不改变变量名字的前提下,如何曲别变量名和关键字名呢?
这个时候,命名空间域就能起作用了。命名空间可以对其中的内容进行封装保护,在不特地调用的情况下,编译器在编译的过程中不会展开读取其中的内容。
命名空间的关键字是 namespace
一般结构为
namespace rand
{
int a=0;
}
其中,命名空间可以包括的内容有很多
namespace guoziyin
{
int a = 100;//基本变量类型
int b = 50;
namespace gmy//甚至嵌套一个命名空间
{
int Add(int a, int b)//函数
{
return a + b;
}
struct queue//结构体
{
int* a;
int size=0;
int capacity=0;
}QU;
}
}
默认情况下,不会直接展开命名空间,只有用了对应的关键字或符号,才会在编译阶段允许展开访问命名空间。
调用命名空间的方法有两种:
第一种,关键字 using ,直接展开命名空间的全部内容
using namespace std(命名空间名);
如上std中的所有内容就都可以使用了。
但在一些特殊应用场景下,我们只需要用到其中的一种或几种,那我们就可以单独展开调用。
第二种,用 :: 作用域符号, std(命名空间名):: a(所要调用的内容)
printf("%d\n",std::a);
2.认识几C++的简单语法
在C语言中,我们输入和输出内容一般用<stdio.h>中的printf 和scanf,它们在C++中任然适用。但C++中也有新的语法,要在 C++ 中执行任何输入和输出操作,我们需要使用 iostream 头文件。如果没有 <iostream>
头文件,就无法从用户那里获取输入或打印任何输出。
在C++中,输出用符号 << (流插入)搭配cout使用,输入用 >> (流提取)搭配cin使用。
一般形式为:
#include<iostream>
std::cout << "a = " << a << std::endl;//输出a的值
std::cin >> i;//输入i的值
其中的std是在C++标准库中的函数和对象的命名空间,cout和cin就是std中定义的函数。
如果不想用std:: ,也可以
#include<iostream>
using namespace std;//结合上面关于命名空间的内容
cout << "a = " << a << endl;//输出a的值
cin >> i;//输入i的值
同样也可印空格或换行等内容
std::cout << '\n' << ' ' << std::endl;
3.缺省参数
在C语言中,定义的函数的参数是不能直接给值的。但在C++中,可以给函数一个默认的参数,在没有给函数传值的时候,就可以调用这个参数。
void F2(int a = 10, int b = 20, int c = 30)//全缺省,从左往右
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl << endl;
}
F2(1, 2, 3);
F2(1, 2);
F2(1);
代码结果为