
C/C++学习
文章平均质量分 71
youyoulg
每个人都有过失败
每个有人都受过伤害
谁都满怀理想
在这世上闯
心中有梦就有希望
人生的路原本就该是这样
展开
-
Explicit关键字的作用
explicit,和构造函数一起使用. explicit constructor指明构造函数只能显示使用,目的是为了防止不必要的隐式转化. 举个例子: 有这样一段代码: class A { public:转载 2011-10-04 00:22:08 · 661 阅读 · 0 评论 -
static变量对照表
变量类型 存储位置 作用域 特点 全局变量 全局数据区 整个工程 在整个工程中都可见,其他文件可以通过extern关键字引入静态全局变量 全局数据区 声明它的文件 只在声明它的文件中可见 静态局部变量 全局数据区原创 2011-10-20 23:01:50 · 647 阅读 · 0 评论 -
四种强制类型转换的总结(const_cast、static_cast、dynamic_cast、reinterpreter_cast)
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。转载 2011-10-03 23:59:05 · 20728 阅读 · 2 评论 -
变量的存储方式和存储类别
1、动态存储方式与静态存储方式 存储期可以分为静态存储期(static storage duration)和动态存储期(dynamic storage duration)。这是由变量的静态存储方式和动态存储方式决定的。所谓静态存储方式是指在程序运行期间,系转载 2011-10-06 01:59:26 · 1506 阅读 · 0 评论 -
volitale关键字详解
就象大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。 推荐一个转载 2011-10-06 00:00:09 · 916 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) —转载 2011-10-06 02:07:23 · 463 阅读 · 0 评论 -
智能指针Boost.smart_ptr学习6--intrusive_ptr
intrusive_ptr头文件: "boost/intrusive_ptr.hpp"intrusive_ptr 是shared_ptr的插入式版本。有时我们必须使用插入式的引用计数智能指针。典型的情况是对于那些已经写好了内部引用计数器的代码,而我们又没有时间去重写它转载 2011-10-04 15:17:54 · 746 阅读 · 0 评论 -
智能指针Boost.smart_ptr学习2--scoped_ptr
头文件: "boost/scoped_ptr.hpp"boost::scoped_ptr 用于确保动态分配的对象能够被正确地删除。scoped_ptr 有着与std::auto_ptr类似的特性,而最大的区别在于它不能转让所有权而auto_ptr可以。事实上,scoped转载 2011-10-04 14:11:09 · 873 阅读 · 0 评论 -
智能指针Boost.smart_ptr学习1--为什么使用智能指针
我们学习C++都知道智能指针,例如STL中的std::auto_ptr,但是为什么要使用智能指针,使用它能带给我们什么好处呢?最简单的使用智能指针可以不会因为忘记delete指针而造成内存泄露。还有如果我们开发或者使用第三方的lib中的某些函数需要返回指针,这样的返回的指转载 2011-10-04 13:59:56 · 1051 阅读 · 0 评论 -
智能指针Boost.smart_ptr学习5--shared_array
shared_array头文件: "boost/shared_array.hpp"shared_array 用于共享数组所有权的智能指针。它与shared_ptr的关系就如scoped_array与scoped_ptr的关系。shared_array 与 shar转载 2011-10-04 14:54:57 · 1208 阅读 · 0 评论 -
智能指针Boost.smart_ptr学习4--shared_ptr
shared_ptr头文件: "boost/shared_ptr.hpp"几乎所有稍微复杂点的程序都需要某种形式的引用计数智能指针。这些智能指针让我们不再需要为了管理被两个或多个对象共享的对象的生存期而编写复杂的逻辑。当引用计数降为零,没有对象再需要这个共享的对象转载 2011-10-04 14:46:50 · 1294 阅读 · 0 评论 -
智能指针Boost.smart_ptr学习3--scoped_array
scoped_array头文件: "boost/scoped_array.hpp"需要动态分配数组时,通常最好用std::vector来实现,但是有两种情形看起来用数组更适合: 一种是为了优化,用vector多少有一些额外的内存和速度开销;另一种是为了某种原因,要转载 2011-10-04 14:18:18 · 1179 阅读 · 0 评论 -
const修饰符的作用
const修饰符的使用是笔试和面试中经常会遇见的,以前对其作用不是很明确,今天通过仔细地学习,有了较为全面的理解和认识,总结一下。1.修饰基本数据类型这个最简单,如const int a,const char b,const double c.表示a,b,c是常量,其值不可修改,在定义时就要对其进行初始化。2.修饰指针类型const一旦与指针联系起来就容易犯迷糊了,原创 2011-11-05 03:00:58 · 1110 阅读 · 0 评论