C++学习笔记

基本语法

 1.引用

 

1 int a = 42 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;

 

posted @ 2018-03-18 23:14  BigPop  阅读(123)  评论(0)    收藏  举报