首页
社区
课程
招聘
[分享]《探索现代化C++》泛读笔记摘要3
发表于: 2022-9-9 07:59 5196

[分享]《探索现代化C++》泛读笔记摘要3

2022-9-9 07:59
5196

《探索现代化C++》泛读笔记摘要3

Chapter 1 C++ 基础

数组、指针、引用

C++11 nullptr

 

指针一定要进行初始化

1
2
int* ip3 = nullptr;
int* ip4{};

旧的代码风格

1
2
int* ip3 = 0;
int* ip4 = NULL;

三种策略减少指针相关的错误

  1. 使用标准库容器
  2. 在类中封装动态内存管理,思想就是RAII。
  3. 使用智能指针

指针有两个作用:

  1. 引用对象
  2. 管理动态内存

C++11 智能指针

unique_ptr

1
2
3
4
5
6
7
8
#include <memory>
int main()
{
    unique_ptr<double> dp{new double};
    *dp = 7;
    ...
    cout<<"The value of *dp is "<<*dp<<endl;
}

这种指针不能拷贝,但是可以转移

1
2
unique_ptr<double> dp2{move(dp)}, dp3;
dp3 = move(dp2);

数组型

1
2
3
unique_ptr<double[]> da(new double[3]);
for (unsigned i =0;i<3;++i)
    da[i]=i+2;

shared_ptr

1
2
3
4
5
6
7
8
9
10
11
shared_ptr<double> f()
{
    shared_ptr<double> p1{new double};
    shared_ptr<double> p2{new double},p3=p1;
    cout<<"p3.use_count() = "<<p3.use_count()<<endl;
}
int main()
{
    shared_ptr<double> p = f();
    cout<<"p.use_count() = " << p.use_count()<<endl;
}

Weak Pointer

 

解决shared_ptr的循环引用。

引用

建议以引用为返回值的函数只返回指针、引用和具有引用语义的对象,比如指向动态分配的数据、指向在函数调用前就存在的数据或指向静态数据。

数组容器

C++11允许使用初始化列表进行初始化,这简化了容器的初始化。

1
std::vector<float> v = {1,2,3}, w= {7,8,9};

结构化的软件项目

避免命名冲突

注释

注释应该通俗易懂

预处理指令

Include guards

1
2
3
4
5
6
7
8
9
10
11
// Author: me
// License: Pay me $100 every time you read this
#ifdef HERBERTS_MATH_FUNCTIONS_INCLUDE
#define HERBERTS_MATH_FUNCTIONS_INCLUDE
 
#include <cmath>
 
double sine(double x);
...
 
#endif HERBERTS_MATH_FUNCTIONS_INCLUDE

更简洁一点的,但是可能移植性不太好,依赖于编译器是否支持这个扩展。

1
2
3
4
5
6
7
8
// Author: me
// License: Pay me $100 every time you read this
#pragma once
 
#include <cmath>
 
double sine(double x);
...

条件编译

1
2
3
4
5
#if
#else
#elif
#endif
#ifdef

Chapter 2 类

2.1 程序的普遍意义,不涉及技术细节

使用正确的抽象,如果不存在这种抽象,那么为其实现一个。

 

domain-specific 特定领域

 

Domain-Driven Design 领域驱动设计

 

如何更好地表达抽象概念。

 

在软件中全面有效的表示抽象概念。

 

简明直观的接口


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 389
活跃值: (565)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
2
海子哥你怎么看起书来了
2022-9-9 16:54
0
雪    币: 1886
活跃值: (5929)
能力值: ( LV7,RANK:116 )
在线值:
发帖
回帖
粉丝
3
自然dashen 海子哥你怎么看起书来了
消遣时光
2022-9-9 18:32
0
游客
登录 | 注册 方可回帖
返回
//