c++与c的关系:
c++几乎完全兼容c,并在c的基础上增加了很多新的内容
编程思想:c更多的是面向过程,c++是面向过程+面向对象,面向对象是通过面向过程来实现的
命名空间:为了解决命名冲突的问题
定义:
Namespace 命名空间名
{
变量名;
函数名;
类型名;
....
};
访问方式:
命名空间名::变量名 其中“::”是作用域运算符
Using namespace 命名空间名
标准输入输出流:操作流就是在操作文件
cin:标准输入流对象,cin >> a:通过键盘输入给a赋值
cout:标准输出流对象,cout << a:将a的值输出到显示屏
引用
引用:变量的别名
定义:数据类型 &引用名=变量名
作用:弱化指针,原来需要使用指针的地方用引用可以达到相同效果,且使用方便
减少临时空间的产生
注意:
访问引用就是在访问变量
引用不会开辟空间
引用必须被初始化
cons(只读)修饰的引用
防止实参被修改
可以是常量的别名
const int &a = 100; <===> #define a 100
函数重载
在C++中,允许在同一作用域中声明几个功能类似的同名函数,这些函数的参数(个数和类型)不同,这样的函数就互为重载,这种做法能够减少函数名的数量,并提高了代码的可读性
函数重载规则:
函数名称相同,参数列表不同(个数、类型不同)
函数的返回类型可以相同也可以不相(与返回值无关)
函数名可以相同的原因:g++编译时会对函数名结合参数类型和个数进行重命名,在调用函数时是根据重命名之后的名称进行调用的
默认参数
函数在声明时形参可以有默认值,如果函数在调用时传参了就使用传进来的值,否则就使用默认值 注意:默认值必须从依次从右向左
类
结构体的作用:描述一类事物的属性的自定义的数据类型
类的作用:描述一类事物的属性和行为的自定义的数据类型
c的结构体中不能有函数,但c++可以
c中空结构体内存大小为0,c++中空结构体内存大小为1
结构体和类的区别:结构体的默认的访问限定符是public,而类是private
访问限定符:
public修饰的成员既可以在类内被访问,也可以在类外被访问
private和protected修饰的成员只能在类内被访问
对象
用类这种自定义的数据类型定义的变量
类的数据类型(定义数据类型系统不会分配空间)是抽象的,对象是具体的实体(定义变量会分配空间),所以用类的数据类型定义变量的过程叫实例化对象