c++基础知识入门

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;

引用的作用:

  • 传参,在函数内部的改变也会影响外部。
  • 提高效率
  • 引用做返回值(出了作用域对象还在),如出了作用域对象不在则用传值返回

猜你喜欢

转载自blog.csdn.net/enjoymyselflzz/article/details/80965904