- 什么是C++?
c++是由c发展而来,与c兼容。用c语言编写的程序基本上可以不加修饰的用于c++。c++既可用于面向过程的结构化程序设计,又可以用于面向对象的程序设计,是一个功能强大的混合型的程序设计语言。
c++对c的“增强”,表现在两个方面:
1)在原来面向过程的机制基础上,对c语言的功能做了不少补充。
2)增加了面向对象机制。
- 为什么C++支持重载?C语言不支持–重点
c++ 函数有修饰规则,在链接过程中引入了参数。在其他文件下定义函数后,在其他文件上去找的过程中函数后面引入了函数的类型(函数名+参数)
C语言是什么名字就找什么函数
代码运行需要以下几个步骤:
test.c test.h main.c
1、预处理 展开头文件/宏替换/去掉注释/条件编译 test.i main.i
2、 编译 检查语法,生成汇编代码 test.s main.s
3、 汇编 汇编代码转化成机器码 test.o main.o
4、 链接 链接到一起生成可执行程序 a.out
- 缺省参数:缺省就可以理解为一个备胎,不传参就用它自己的,传参就用穿的那个。
半缺省只能缺省右边的,且必须是连续的。
// 全缺省参数
int Add1 (int a = 0, int b = 0)
{
return a + b;
}
// 半缺省参数
int Add2 (int a, int b = 0)
{
return a + b;
}
void Test ()
{
Add1();
Add1(1);
Add1(1,1);
Add2(2);
Add2(2,2);
}
- 命名空间
在c++中总会有using namespace std;这句,好多人都不理解这一点,其实它就是一个命名空间,在std这个空间中包含cout、endl等等这些变量,它就相当于一个库,去掉这句要想程序继续运行就要借用全局域符号::每句前面加上std::,这些变量才能正常使用。
用法:
namespace my1
{
int a = 10;
namespace my2
{
int a = 8;
}
}
int main()
{
std::cout << "change world" <<std::endl;
std::cout << my1::a << std::endl << my1::my2::a << std::endl;
system("pause");
return 0;
}