C++疑难杂症
the cool grass
Advanced Programming in the UNIX Environment
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C\C++编译过程详解
C/C++程序编译过程详解C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织,形成最终生成可执行代码的过程。过...转载 2019-05-13 20:39:16 · 363 阅读 · 0 评论 -
c++强引用与弱引用
https://www.zhihu.com/question/26851369智能指针一个很重要的概念是“所有权”,所有权意味着当这个智能指针被销毁的时候,它指向的内存(或其它资源)也要一并销毁。这技术可以利用智能指针的生命周期,来自动地处理程序员自己分配的内存,避免显示地调用delete,是自动资源管...转载 2019-05-13 22:27:43 · 1989 阅读 · 0 评论 -
C++11新特性:lambda表达式
简介 lambda表达式(lambda expression)基于数学中的λ演算得名。在计算机科学中,我们可以将其理解为一个匿名内联函数,一个lambda表达式表示一个可调用的代码单元。 与任何函数类似,一个lambda具有一个返回类型、一个参数列表和一个函数体。...转载 2019-06-01 09:46:49 · 2432 阅读 · 0 评论 -
C++11 特性 左值、右值、右值引用(&&)详解
左值、右值在C++11中所有的值必属于左值、右值两者之一,右值又可以细分为纯右值、将亡值。在C++11中可以取地址的、有名字的就是左值,反之,不能取地址的、没有名字的就是右值(将亡值或纯右值)。举个例子,int a = b + c,a 就是左值,其有变量名为a,通过&a可以获取该变量的地址;表达式b+c、函数int func()的返回值就是右值,在其被赋值给某一变量前,我们不能通过变量名...原创 2019-06-01 10:32:23 · 1873 阅读 · 0 评论 -
线程安全的 Observer 模式
一个动态创建的对象是否还活着一个动态创建的对象是否还活着,光看指针是看不出来的(引用也一样看不出来)。指针就是指向了一块内存,这块内存上的对象如果已经销毁,那么就根本不能访问(就像 free 之后的地址不能访问一样),既然不能访问又如何知道对象的状态呢?换句话说,判断一个指针是不是合法指针没有高效的办法,这是 C\C++ 指针问题的根源。(万一原地址又新建了一个新的对象呢?再万一这个新的对象的类...原创 2019-07-09 11:43:54 · 711 阅读 · 0 评论
分享