1、创建shared_ptr智能指针对象的两种方式:
智能指针的作用:自动释放在堆区创建的内存防止内存泄漏、野指针、内存重复释放等
(1)使用原始指针创建对象
#include <memory> // 头文件
std::shared_ptr<int> p1(new int());
// 等同于
int* p = new int(); // 带()可以初始化值
std::shared_ptr<int> p1(p);
(2)使用make_shared方法创建
#include <memory> // 头文件
std::shared_ptr<int> p1 = std::make_shared<int>();
2、const修饰指针
const修饰指针有三种情况:
1、const修饰指针 ——常量指针
//指针的指向可以改,指针指向的值不可以改
int a = 10;
int b= 20;
const int* p = &a;
//*p = 20; //这段代码是不被允许的
2、const修饰常量——指针常量
//指针的指向不可以改,指针指向的值可以改
int a = 10;
int b = 20;
int* const p = &a;
//p = &b; //这段代码是不被允许的
3、const既修饰指针,又修饰常量
//指针的指向和指针指向的值都不可以改
int a = 10;
int b = 20;
const int* const p = &a;
//*p = 20;
//p = &b; //这两段代码都是不被允许的