初探C++

C++

首先C语言是C++的一个子集,所以C语言支持的语法在C++上基本都支持并且都能被使用。奋斗

C++在基本数据类型上,比之C语言多了一个类的(非基本数据类型)。其他的譬如字符,整形,浮点型,逻辑型,无类型这五大基本数据类型和数组,指针,结构体,联合体,枚举这五大非基本类型都是一样的,唯独多了一个 “类” 。

一: 空间域

与此同时 C++ 引入了一个名字空间域的 概念



二:命名空间

using namespace std:

命名空间是C++引入的可以由用户名的作用域,用来处理程序种常见的同名冲突。

命名空间实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来。  C++标准要求系统提供的头文件不包括后缀.h,例如iostream、string。为了表示与C语言的头文件有联系又有区别,C++所用的头文件名是在C语言的相应的头文件名(但不包括后缀.h)之前加一字母c。例如,C语言中有关输入与输出的头文件名为stdio.h在C++中相应的头文件名为cstdio。C语言中的头文件math.h,在C++中相应的头文什名为cmath。C语言中的头文件string.h在C++中相应的头文件名为cstring。注意在C++中,头文件cstnng和头文件strmg不是同一个文件。前者提供C语言中对字符串处理的有关函数(如strcmp,ctrcpy)的声明,后者提供C++中对字符串处理的新功能。



三:重载

重载也是 C++和C语言的一个区别

在C语言中,写两个函数,两个函数名不能相同,但是在C++中却可以,重载就是 同一作用域内,一组函数的函数名相同,参数列表不同,返回值可以相同也可以不相同的函数。

原因:在C语言中,编译器调用函数时是在函数名称前面加_,类如在.CPP文件中如果定义两个 完全相同的函数是不会有问题的。


但是 当把文件名从.cpp改成.c文件那么编译器就会出现错误

所以 C++重载 是跟C语言的一个主要区别。

C语言中编译器编译时调用函数时在函数 前面加- ,所以对于这两个函数编译器都认为是_fun,但是C++在LINUX环境中 通过objdump-S 看代码的源文件和汇编语言时,发现编译器在解析这两个函数时是 一个是       _z3funii, 一个是_z3fundi,所以c++中函数名称是  -z加上函数的名称的个数再加上变量的首字母组合。

四:引用

引用又是C++与C语言的一个重要区别。

首先 引用其实可以类比我们生活中的别名,引用其实就是别名。

格式:           类型 & 引用新的变量名 = 已经定义过的变量名   注意:引用只能在初始化的时候引用一次,不能重复多次引用,但是一个变量可以取多个别名。

指针与引用的去区别 :

1:引用与指针,引用只能被初始化一次,之后不能改变其他变量要(从一而终)。

2:引用必须指向有效的变量,而指针可以指向NULL。

3:sizeof引用与指针,sizeof引用的话,得到的是所指向变量的大小,而sizeof指针是对象地址的大小。

4:指针与引用自增自减意义不同。 指针加加 是相对类型加加 ,引用加加就是 所指向变量的值加加。

5:相对而言,指针比引用更危险,因为稍微不assert就有可能对空指针进行处理与操作,而引用这种情况就大大降低。

但是引用也是有可能会危险 譬如:

但是一般情况下,不会这样写代码吧。



五:C++的另一特色面向对象

OOP

在我们主观的世界中, 就是抽象类别 和实体之间的相辅相成。

C++为了与现实生活更贴近就定义了类和对象这两个计算术语。     另外C++不是 纯面向对象的语言而是基于面向对象的语言。


C++  一个类由两部分组成:1:数据 2:程序 。 它有三种访问限定符 1:public 2: private 3 :protect

简单的 public 程序 :



隐含的 this 指针:

1: 每个成员都有一个 this 指针   2: 编译器会对其进行 自动处理 3:This指针是成员函数隐式的指针参数 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值