C++学习笔记
基本语法
1.引用
1 int a = 4; 2 int &b = a; //引用 3 const int &b = a; //常引用 b不能再被赋值 4 5 使用技巧:void func1(int &a_1); 6 将a传入 func1(a); 在fun内进行对a_1进行操作 相当于对a进行同样操作 7 8 void fun2(const int &a_2); 9 将a传入 func2(a); 对a_2操作会报错
2.常量 const
1 const int *p1 =4;//常量指针 该指针里的内容可以修改 但!不能通过该指针修改
const int a = 10;
const int *p = &a;
3.内存分配回收
0 T *P;
1 P = new T[n]; // P:地址(指针) T;类型 n:数组大小
2 delete P;//回收单个类型空间
3 delete []P;//回收数组类型空间
注意:new 和delete 都为运算符
int *p = new int[n];
if(NULL==p){
//内存分配失败 异常处理
}
delete []p;
p=NULL;
4.内联函数 inline
1 inline Type FuncName(){};
5.重载函数
根据不同参数类型或个数 执行函数名相同的不同函数
6.函数的缺省参数
1 void func(int x, int y=1,int z=2){}//可以func(1)进行调用相当于func(1,1,2) 但只能最右的若干联系参数缺省
封装
1.class
1 class className{ 2 public: 3 type elementName; 4 type funcName(){} 5 private: 6 } 7 8 栈初始化 className obj; 9 10 堆初始化 className *p = new className; 11 delete p;
2. 数据封装 思想是将数据设置为私有 通过公共函数访问
3.类外定义(类内定义的函数一般是内联函数)
类声明放到 .h 类函数定义 放到 .cpp (突然想起来之前见到的库代码好像也是这么个套路)
4.构造函数Constructor 拷贝构造函数 与 初始化列表
*构造函数*
构造函数在类被实例化时调用 class className{ public: className(){classValue_init};//构造函数 无返回值类型 className(newValue){classValue = newValue}//带参数的构造函数 private: classValue; }
*拷贝构造函数*
在使用 className stu2 = stu1;会自动调用拷贝构造函数
拷贝构造函数在类中的声明是 className(const className &stu){};
*初始化列表* 初始化列表 与带参数的构造函数类似,但不同的是:初始化列表可以为常量const赋值 class teacher{ public: teacher(int _age, int _weight, int gender):m_age(_age), m_weight(_weight), m_gender(_gender); private: int m_age; int m_weight; const string m_gender; }
5.析构函数 Destructor
~className(){ //释放资源 };
7.this指针
为实例化对象的地址
标准库
1.容器
1 vector vector<int> V(10);//十个元素的向量 2 deque 3 list 双向链表
操作 front() back() push_back()末尾添加元素 pop_back()末尾删除元素 erase()
1 stack
2.<queue>
2.1 queue
2.2 priority_queue
操作 push() top() pop()
begin()指向第一个元素
end()最后一个元素后面的位置
rbegin()
rend()
erase()
clear()
2.算法库 algorithm
find(起始地址,终止地址,元素值)//[起始,终止) sort()
3.迭代器
1 1 vector<int>::iterator iter;

浙公网安备 33010602011771号