c++1基础知识介绍

1.介绍一下C++

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,

2.为什么C++支持重载?C语言不支持--重点

而所谓的函数重载就是指:
在同一作用域类,一组函数的函数名相同,参数列表不同(个数不同或类型不同),返回值可同可不同。
那么问题来了,为什么C++支持函数重载,而C语言不支持呢?
从代码的编译到运行,在VC6.0或VS这种编译器下,它是系统直接完成了翻译与链接,直接生成了运行结果。
编译器内部完成了翻译部分:
1.预处理
   1)头文件展开
   2)宏的替换
   3)去注释
   4)条件编译
2.编译过程:将高级语言转为汇编语言
3.汇编过程:汇编语言转为二进制程序
链接部分:所引用的数据链接进来
比如一个函数的声明如下:
void  function(int x,int y);


在c语言中,编译器在编译后在库中的名字为_function
在c++中,编译器在编译后在库中的名字为_function_int_int
还有一个函数的声明如下:
void function(float x,float y);
在c语言中,编译器在编译后在库中的名字为_function
在c++中,编译器在编译后在库中的名字为_function_float_float
在链接时,都是找名字进行链接的,就比如以上两个函数,
在C语言中两个的名字一样,就会在链接中报错。
C++中它们的名字不一样,所以就不会报错。

3.缺省参数

// 全缺省参数:全缺省
int Add1 (int a  , int b  )
{
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);
}

4.命名空间 

名字空间域相当于文件域(全局域) ,并以关键字namespace开头给它起一个名字:

namespace name1

{

int a = 0;

}

name1::a = 3;

名字空间域解决全局命名冲突的问题.

在 C++的平台上只要写一个using指示符:using namespace std;就可以直接使用标准C++库中的所有成员。

或者 std::成员 的方式也可以使用C++库里的成员。

猜你喜欢

转载自blog.csdn.net/qq_40408443/article/details/79596473