Skip to content

Commit f09f565

Browse files
[c++](update)
1 parent da8f296 commit f09f565

File tree

2 files changed

+15
-20
lines changed

2 files changed

+15
-20
lines changed

note/c++.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,6 @@
6262
6363
> [线程同步](./线程同步.md)
6464
65-
> [c++的多态和虚函数](./c++的多态和虚函数.md)
66-
6765
> [c++的前置声明](./c++的前置声明.md)
6866
6967
> [c++面向对象](./c++面向对象.md)

note/c++学习.md

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@
1313
* [临时对象](#临时对象)
1414
* [作用域符号 : :](#作用域符号)
1515
* [宏,const,inline](#宏)
16-
17-
* [比较重要的零散的东西](#比较重要的零散的东西)
18-
* [拷贝构造函数](#拷贝构造函数)
1916
* [一个对象的空间布局](#一个对象的空间布局)
2017

2118
---
@@ -30,7 +27,7 @@ http://www.cnblogs.com/miloyip/archive/2010/09/17/behind_cplusplus.html
3027

3128
在这个地方,我罗列的一些内容是对我而言,比较容易忘记的,或者是掉过一些坑的东西。各个点之间也没有什么逻辑关系。
3229

33-
### 1. 理解extern关键字
30+
## 1. 理解extern关键字
3431

3532
思考一个问题,如何在main.cpp文件里面调用 fun.c 文件里面的func 函数?
3633
换一句话,就是如果在c++的代码里面调用c的代码。
@@ -100,7 +97,7 @@ int foo(int a)
10097
}
10198
```
10299

103-
### 2. 使用初始化列表初始化
100+
## 2. 使用初始化列表初始化
104101

105102
为什么要使用初始化列表初始化?
106103

@@ -118,7 +115,7 @@ public:
118115
};
119116
```
120117

121-
### 3. 右值引用
118+
## 3. 右值引用
122119

123120
右值引用,是c++里面一个重要的特性。他解决的问题是:**延长临时对象的生命周期,避免对象拷贝的开销**
124121

@@ -355,7 +352,7 @@ desconstruct
355352
cout<<str2<<endl; //st2的输出是空
356353
```
357354
358-
### 4. 移动构造函数 / 移动赋值函数
355+
## 4. 移动构造函数 / 移动赋值函数
359356
```
360357
class Socket
361358
{
@@ -426,17 +423,17 @@ Socket::Socket(int sockfd) fd : 100 # Socket s4(move(s1)); 的输出 ,
426423
Socket(Socket && rhs)
427424
```
428425
429-
### 5. 完美转发 forward
426+
## 5. 完美转发 forward
430427
431428
在函数模板中,完全依照模板的参数的类型(即保持参数的左值、右值特征),将参数传递给函数模板中调用的另外一个函数。
432429
433-
### 6. 智能指针
430+
## 6. 智能指针
434431
435432
这个写起来发现似乎比较多,单独开一个文件写吧。
436433
437434
> [c++智能指针](./c++智能指针.md)
438435
439-
### 7. 函数指针
436+
## 7. 函数指针
440437
441438
定义一个函数的指针
442439
```
@@ -569,7 +566,7 @@ int main()
569566
570567
https://elloop.github.io/c++/2015-12-15/learning-using-stl-12-std-bind
571568
572-
### 8. cpp11的语法糖
569+
## 8. cpp11的语法糖
573570
574571
* for-each
575572
```
@@ -608,7 +605,7 @@ https://elloop.github.io/c++/2015-12-15/learning-using-stl-12-std-bind
608605
609606
```
610607
611-
### 9. cpp11的其他新特性
608+
## 9. cpp11的其他新特性
612609
613610
* 占位符和bind函数
614611
@@ -647,7 +644,7 @@ https://elloop.github.io/c++/2015-12-15/learning-using-stl-12-std-bind
647644
648645
c++11 线程库
649646
650-
### 10. 临时对象
647+
## 10. 临时对象
651648
c++ 里面的临时对象是不可见的 —— 他们不在堆上面创建,同时也没有名字,这样的对象就是临时对象。
652649
653650
常见的有两种:
@@ -733,15 +730,15 @@ int main()
733730
// g++ -fno-elide-constructors 好像是这个参数可以关闭
734731
```
735732
736-
### 11. 作用域符 ::
733+
## 11. 作用域符 ::
737734
738735
1. global scope (全局作用域符),用法(::name)
739736
740737
2. class scope (类作用域符),用法(class::name)
741738
742739
3. namespace scope (命名空间作用域符),用法(namespace::name)
743740
744-
### 12. 宏
741+
## 12. 宏
745742
746743
宏,const,inline的区别在《effective c++》里面的第一部分就由提到。
747744
但是,我的学习顺序是 先学习了c++,然后再看了c。我会更习惯于用const,inline,而不是宏。
@@ -768,7 +765,7 @@ forceinline字面意思上是强制内联,一般可能只是对代码体积不
768765
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
769766
770767
771-
### 13. 比较重要的零散的东西
768+
## 13. 比较重要的零散的东西
772769
773770
* 拷贝构造函数为什么需要是const
774771
@@ -789,7 +786,7 @@ class A
789786
A(const A & other) { m = other.m; }
790787
```
791788
792-
* 一个对象的空间布局
789+
## 一个对象的空间布局
793790
794-
todo
791+
> [c++多态和虚函数](./c++的多态和虚函数.md)
795792

0 commit comments

Comments
 (0)