c++是一门面向对象编程,泛型编程语言,而c是面向过程语言。
标识符:1.不可以是关键字
2.首字符必须是字母或者下划线
3.可由字母,下划线,和数字组成
4.区分大小写
数据类型所占字节用sizeof(数据类型/变量)查
编译器默认小数为双精度,定义float类型变量时,在小数后加f
科学计数法(例:float f = 3e2; //3x10^2 float f = 3e-2;//3x10^-2)
使用string时要加头文件
a---97
A---65
内存分区 :1和2是程序运行前, 3和4是程序运行后
1.代码区:存放二进制代码
特点:只读,共享。
2.全局区:存放全局变量,静态变量以及常量,程序结束由os释放
3.栈区:编译器自动分配和释放
4.堆区:程序员手动分配(new)和释放(delete)
局部变量:函数体内的变量
全局变量:函数体外的变量
静态变量:static int a = 10;
常量:分为字符串常量和const修饰常量
const修饰常量分为const修饰的全局变量(全局常量)和const修饰的局部变量(局部常量)
常量中除了局部常量都在全局区
函数返回不要返回局部变量地址
new:起别名
本质:指针常量
new返回的类型为变量类型的指针
用法:int* p = new int(10);
delete p;
int* arr = new int[10];
delete [] arr;
指针变量为局部变量
引用:起别名
用法:int a = 10;
int &b = a;
注:1.引用必须初始化,且初始化后不可改变
2.不能返回局部变量的引用
3.如果函数的返回值为引用,函数调用可以做左值
const修饰指针:1. 常量指针 const int* a = &b;//指针指向可以变,指向的值不可以变
2.指针常量 int* const a = &b;//指向的值可以变,指针指向不可以变
3.const int* const a = &b;//啥都不可变
引用必须引用一块合法的内存空间
const int &val;//防止误操作
const int &ref = 10; //相当于 int temp = 10; const int &ref = temp;
形参可以设置默认值
注:1.某位置设置默认值,那么知道末尾都必须设置默认值
2.函数的声明和实现,两者中只能有一者中设置默认值
占位参数可以有默认值
重载条件:
1.在同一作用域
2.函数名相同
3.参数类型 ,顺序或个数不同
相同性质的对象抽象为类
类创建为对象叫做实例化
在c++中字符串可以赋值
类中属性和行为称为成员
访问权限:
私有权限:类内可以访问,类外不可访问,子不可继承
保护权限:类内可以访问,类外不可访问,子可继承
公共权限:类内可以访问,类外可以访问,子可继承
struct与class区别为默认权限:
struct默认权限为公共权限
class默认权限为私有权限
成员属性设为私有优点:
1.读写权限可控
2.检测写权限的数据有效性
构造函数:初始化操作
语法:类名(){}
1.构造函数没有返回类型,也不需要写void
2.函数名与类名一致
3.可以有参数,可以发生重载
4.程序在调用对象前会自动调用,且只调用一次,无需手动
析构函数:清理数据
语法:~类名(){}
1.析构函数没有返回类型,void也不需要写
2.函数名与类名一致,且在类名前加~
3.无参数,不可发生重载
4.程序在对象销毁前会自动调用,且只调用一次,无需手动