做cpa必须要有网站吗百度公司官网
[本节内容]
1.c++关键字
2.命名空间
3.c++的输入和输出
4.缺省参数
5.函数重载
1.C++的关键字
1.关键字不能用作自定义变量的名称;
2.常用的关键字:
auto | bool | break | case | catch | char | class |
---|---|---|---|---|---|---|
const | continue | delete | do | double | default | else |
enum | export | extern | false | float | for | friend |
goto | if | inline | int | long | mutable | namespace |
new | operator | private | protacted | public | return | register |
short | signed | sizeof | static | struct | switch | template |
this | try | typedef | typeid | typename | throw | true |
union | unsigned | using | virtual | void | volatile | while |
2.命名空间:namespace
命名空间的作用:将自定义的名字与关键字或者库函数里的名字区分,隔离开。
2.1 命名空间的定义:namespace + 命名空间的名字 + {命名空间的成员}
//1)普通的命名空间。例如:namespace N1 //N1是命名空间的名字{//命名空间中的内容,既可以是变量也可以是函数int a; //变量{int Add(int a, int b) //函数return a + b;}}//2)命名空间可以嵌套。例如:
namespace N2
{int a;namespace N3 //N3嵌套在N2里{int c;}
}//3)同一工程里允许存在多个相同名称的命名空间,且编译器最后会将它们合成在一个命名空间里。
namespace N1
{int MUL(int a, int b){return a*b;}
}
注:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间内。
2.2 命名空间的使用:变量,函数,类都可以被隔离使用
1)加命名空间的名称和作用域限定符“::”。例如:
printf("%d,\n", N::a); //即表示变量a使用名字为N的命名空间的值
2)使用using 将命名空间内成员引入。例如:
using N::b; //即表示变量b使用名字为N的命名空间定义的值
3)使用using namespace 命名空间名称引入。例如:
//打开N这个命名空间,即所有与命名空间内名称相同的,都用命名空间内定义的值using namespace N;
4)命名空间嵌套时的使用。例如:
N::N1::a //即表示a是嵌套在命名空间N内的N1命名空间的变量
3.C++的输入和输出
1)使用cout<<标准输出和cin>>标准输入时,必须包含 头文件和 std标准命名空间。
2)使用C++的输入输出更方便的原因是:不需要对数据格式进行控制。例如:
#include <iostream>using namespace std;int main(){int a;cin>>a; //用键盘输入cout<<a<<endl ;//endl表示换行,而C语言的输出需要用%d,%c等控制输出数据的格式return 0;}
4.缺省参数(简单理解为“备胎”,且C语言不支持!!)
4.1 概念:
在声明或者定义函数时为函数的参数指定一个默认值。当调用该函数无指定实参时可采用默认值进行操作。例如:
void Test(int a=0) //此时的“0”即是参数a值的备胎
{cout <<a<<endl;}int main()
{ Test(); //使用函数却未传参,使用参数的默认值,故结果为0Test(10); //使用函数时传参,使用指定的实参,故结果为10return 0;
}
4.2 缺省参数的类型
1)全缺省参数:
void Test(int a=1,int b=2,int c=3){cout<<a<<endl;cout<<b<<endl;cout<<c<<endl;}
此时使用形式有四种:
Test(); //输出 1,2,3
Test(10); //输出10,2,3
Test(10,20); //输出10,20,3
Test(10,20,30); //输出10,20,30
2)半缺省参数:
void Test(int a,int b=2,int c=3)
{cout<<a<<endl;cout<<b<<endl;cout<<c<<endl;}
此时使用形式有三种:(a没有“备胎”,故必须传值)
Test(10); //输出10,2,3,
Test(10,20); //输出10,20,3
Test(10,20,30); //输出10,20,30
注意:
*半缺省参数必须从右向左依次给出,不能间隔着给
*缺省参数不能在函数声明和定义中同时出现,故一般只在声明中定义
*缺省值必须是常量或者全局变量
*C语言不支持
5.函数重载(函数名相同,函数形参不同即可)
5.1 概念:
C++允许在同一作用域内声明几个功能类似的同名函数,但它们形参列表(参数个数、类型、顺序)必须不同,这些同名函数叫做函数重载。例如:
int Add(int a, int b)
{
return a+b;}
double Add(double c, double d) {return c+d;}
5.2 名字修饰
1)C语言中不支持函数重载。因为C语言底层的实现方式只是简单的在被调用函数名前添加下划线,若工程中存在相同函数名的函数时,就会产生冲突。
2)C++可以进行函数的重载。因为C++在底层是实现时使用的不完全是函数的名字,而是被编译器修饰过的名字(符号表:函数名+参数类型),因此只要参数不同即使函数名相同,也可以找到不同的函数。(参数类型包含在最终的名字中,就可以保证名字在底层的全局唯一性)。
5.3 程序运行的阶段:( main.cpp func.cpp func.h)
1)预处理:展开头文件 (main.i func.i)
2)编译: 检查语法错误,生成汇编代码(main.s func.s)
3)汇编:把二进制代码转换成二进制机器码(main.o func.o)
4)链接:链接到一起,生成可执行代码(a.exe或a.out)
5.4 extern "C”
c++ 可以通过在函数前加 external“c” 将一个函数按C的风格来编译。
后面继续更新了 C++ 学习第二篇,可以点链接继续查看哦:https://blog.csdn.net/ly_6699/article/details/86553105