在我们讲解指针数组的概念之前,先让我们来看一个实例,它用到了一个由 3 个整数组成的数组: 当上面的代码被编译和执行时,它会产生下列结果: 可能有一种情况,我们想要让数组存储指向 int 或 char 或其他数据类型的指针。下面是一个指向整数的指针数组的声明: 在这里,把 ptr 声明为一个数组,由 ...
分类:
编程语言 时间:
2016-05-06 19:05:23
阅读次数:
197
c++中的auto_ptr是一个类,却可以像指针一样去使用。使用auto_ptr需要包含头文件#include
例如:auto_ptr ps(new string("hello"));可以像指针一样去使用它,cout size()
引例:
#include
#include
using namespace std;
class A{
public:
A(int x = 0) :m_...
分类:
编程语言 时间:
2016-05-06 12:13:39
阅读次数:
239
1.要适当解耦,但不是要全部解耦,要学会划分好模块 2.查找问题的根源,而不是着眼于解决当前问题 3.先思考,再写代码 4.不要用原始的数组,而是使用boost::array 5.尽量使用shared_ptr 6.如果界面框架提供MVC模型,一定要使用MVC的方式来编写 7.不要滥用继承,继承一定要 ...
分类:
其他好文 时间:
2016-05-06 10:42:28
阅读次数:
128
挺简单的一个类,只是维护了一个成员 shared_ptr<detail::trackable_pointee> _tracked_ptr; 这样看来的话,所谓的track还是基于智能指针,这里注意,track的对象需要从trackable_pointee继承,一个空类,主要还是为了用于标识。 ...
分类:
其他好文 时间:
2016-05-03 23:43:40
阅读次数:
248
1.如果const出现在*左边,表示被指物是常量(被指物内容不能修改,但指针可以指向其他对象);如果const出现在*右边,表示指针本身是常量(指针不能再指向其他对象) int k = 9;const int* ptr = &k; const * int ptr = &k;int const* pt ...
分类:
编程语言 时间:
2016-05-03 21:51:02
阅读次数:
148
shared_ptr
头文件: "boost/shared_ptr.hpp"
几乎所有稍微复杂点的程序都需要某种形式的引用计数智能指针。这些智能指针让我们不再需要为了管理被两个或多个对象共享的对象的生存期而编写复杂的逻辑。当引用计数降为零,没有对象再需要这个共享的对象时,这个对象就自动被销毁了。引用计数智能指针可以分为插入式(intrusive)和非插入式(non-intrusive)两类。前者要...
分类:
其他好文 时间:
2016-05-03 18:15:02
阅读次数:
237
JMP(无条件跳转) JMP SHORT OPR(段内跳转)(1byte)(+127~-128) JMP OPR(near jump)(2byte) JMP FAR PTR OPR(段间)(FAR类型,PTR强制类型转换) 标签内: 跳转结束 JMP DONE e.g.1 A word array ...
分类:
其他好文 时间:
2016-05-01 20:21:23
阅读次数:
164
Please indicate the source: http://blog.csdn.net/gaoxiangnumber1
Welcome to my github: https://github.com/gaoxiangnumber1
1.8 应用到 Observer 上
?既然通过 weak_ptr 能探查对象的生死,那么 Observer 模式的竞态条件就很容易解决,只要让Obse...
分类:
其他好文 时间:
2016-04-30 06:38:37
阅读次数:
347
资源管理
所谓资源就是,一旦使用了它,将来必须归还给系统!C++最常见的资源就是动态分配内存,如果不归还就会内存泄露。
1. 以对象管理资源
我们通常希望有一个对象来帮助我们解决资源管理的问题(自动调用析构函数),于是此章我们讨论auto_ptr和shared_ptr。
问题产生假设我们希望使用一个工厂方法如:class investment {...}; // 代表一个root clas...
分类:
编程语言 时间:
2016-04-29 17:03:29
阅读次数:
262
82-资源resource类型讲述之前,先描述下{资源}类型在内核中的结构://每一个资源都是通过它来实现的。
typedef struct _zend_rsrc_list_entry
{
void *ptr;
int type;
int refcount;
}zend_rsrc_list_entry;
在真实世界中,我们经常需要操作一些不好用标量值表现的数据,比如某个文件的...
分类:
其他好文 时间:
2016-04-29 15:23:55
阅读次数:
281