C++_入门基础

什么是C++
C++是包含类别的C语言,是C语言的增强版,C语言可以说是C++的子集。
C++新特性

虚函数
运算子多载
多重继承
模板
异常处理
RTTI
命名空间

C++的具体构成

C
类和对象
继承和多态
模板和泛型编程
异常处理
C++库和标准模板库

C++的数据类型

基本数据类型:char; int; float; double; bool; void;
非基本数据类型:数组type[ ]; 指针type*; struct; union; enum; class;

C和C++的一些区别
命名空间:
作用:区分并防止与全局变量的命名冲突.

namespace name1
{
int a = 1;
}
namepace name2
{
int a = 2;
}

name1和name2是两个命名空间,所以里面的变量是可以用相同的名字的,那么如何使用里面的变量呢?

name1::a+=1;   //::是域名解析符
name2::a+=2;

缺省参数:

int name1::func(int a = 1, int b = 2)
{
return a+b;
}

在函数func()里,可以传参数也可以不传,传参数就用传的,没传就用那里默认的a=1,b=2;
但是要注意的是,缺省参数只能是从右往左连续的;
不可以func(int a=1, int b),可以func(int a,int b=2)
函数重载:

int func(int a, int b)
{
return a+b;
}
int func(int a,int b,int c)
{
return a+b+c;
}

int a = func(1,2);
int b = func(1,2,3);

在C语言中这样肯定是错误的,因为函数的命名冲突了,但是在C++中却可以,因为C++支持函数重载,那这到底是怎么实现的呢?
原因就在编译器编译的过程,在C语言中编译时,给每个函数都起一个名字放在一个表中,起名的规则简单,好比func()就叫_func,命名重复就会报错。而C++中的命名还需要考虑参数,比如func(int a, int b)就叫_funcii,而func(int a, int b, int c)就叫_funciii;这样就避免了重复可以根据用户的传参区分需要调用的函数。

你可能感兴趣的:(C++_入门基础)