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;这样就避免了重复可以根据用户的传参区分需要调用的函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值