c++类型划分
可以粗略的说c++就是在c的基础上增加了class类
c++将类型分为两种,一种是内置类型,一种是自定义类型
内置类型:也就是上图所分类的基本数据类型,即语言内部已定义的基本类型
自定义类型:自己用struct/class/union/enum等定义的类型
命名空间
全局变量存在静态区,局部变量存在栈上。
#include<iostream>这个库中定义了命名空间
#include<iostream.h> vc6.0依旧支持这个旧的头文件
cout,cin,endl等都属于std这个命名空间,特别说明cout与cin都能自动识别类型,无需像c语言一样指定输入输出类型。
::为作用域解析符,::左边的域这里为空,则表示限定为全局,在::左边添加域名,可以指定访问某个域
命名空间就是用来定义域,使达到名字隔离的作用,解决命名冲突的问题
using namespace a 就是将命名空间a中的所有内容展开到全局中
命名空间可以嵌套访问 如 my::your::a 可以芳my这个空间内的your空间中的a变量
函数重载
允许函数名相同,参数列表不同(个数不同/类型不同),返回值可相同可不同
那么c++如何支持重载呢?
为了便于理解我们先将文件执行的过程:
在c语言中,符号查找表中存储的是函数名,函数名不允许重复出现,所以c语言无法实现重载,c++使用的是函数名修饰规则,将函数名、函数类型、函数名长度等组合起来共同形成符号查找表中的名字,故避免了重名情况,也就实现了重载
缺省参数
当没有参数传入或只有一部分参数传入时,自动调用缺省参数
缺省可分为全缺省与半缺省(这里不是缺省一般,而是局部缺省),缺省只能从右往左缺省,缺省参数必须是连续的,因为传参是从左往右的。
引用
引用不是定义一个新的变量,而是给一个已经定义的变量重新起一个别名
int a=0;
int &b=a;
b就是a的别名
引用的特点:
一个变量可以取多个别名
引用必须初始化
引用只能在初始化的时候引用一次,不能再变为其他变量的别名
当被const修饰时:
const int a =0; int a=0;
const int &b=a; 或 const int &b=a;
引用的作用:
传参,在函数内部的改变也会影响外部。
提高效率
引用做返回值(出了作用域对象还在),如出了作用域对象不在则用传值返回
---------------------
版权声明:本文为CSDN博主「enjoymyselflzz」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/enjoymyselflzz/article/details/80965904