在MFC编程中遇到了两种虚函数的特性,看如下代码,B继承于A,C继承于B,D继承于C,E继承于D,F继承于E。 第一种特性: 主函数中创建类C的对象,用ptr指针来指向这个对象,1:然后调用虚函数vFunc(), 运行结果为vFuncC,分析原因:即使D、E、F类都继承了C类且互相继承,但是调用虚函 ...
分类:
其他好文 时间:
2016-08-06 00:18:41
阅读次数:
149
之前uboot启动第一阶段的最后将指针指向了start_armboot这个函数,这里也是uboot启动的第二阶段的开始并且uboot启动第二阶段大部分是在这个函数中完成的。DECLARE_GLOBAL_DATA_PTR;这个宏在大部分中的文件中都有这个宏,这个宏的实际定义是在include/asm-arm/Global_data.h#def..
分类:
其他好文 时间:
2016-08-05 01:11:54
阅读次数:
172
for(init_fnc_ptr=init_sequence;*init_fnc_ptr;++init_fnc_ptr){
if((*init_fnc_ptr)()!=0){
hang();
}
}通过前面的定义init_fnc_t**init_fnc_ptr;可以知道init_fnc_ptr是一个二重指针,而init_sequence是一个函数指针数组里面存放的都是函数的函数名,这些函数都是板级初始化..
分类:
其他好文 时间:
2016-08-05 01:09:51
阅读次数:
282
条款17:以独立语句将New对象放置入智能指针。 1、以独立语句将newed对象放置入智能指针内,如果不这样做,一旦异常被抛出,有可能导致难以察觉的资源泄露。 void name(shared_ptr<管理对象类型>(new 管理对象类型),其它函数)),New被分配内存不一定马上放入管理对象,因为 ...
分类:
编程语言 时间:
2016-07-31 17:43:30
阅读次数:
151
1、上次写的删除器有些问题:template<classP,classD>
classsp_counted_impl_pd:publicsp_counted_base{
public:
sp_counted_impl_pd(Pp,Dd):ptr(p),del(d){}
public:
voiddispose(){
del(ptr);//就是这里,将对象用作函数!!!
}
private:
Pptr;
Ddel;
};del(ptr)->..
分类:
其他好文 时间:
2016-07-31 16:12:51
阅读次数:
167
1、weak_ptr(1)、weak_ptr是为了配合shared_ptr而引入的智能指针,它更像是shared_ptr的一个助手,它不具有普通指针的行为,没有重载operator*和->,它的最大作用在于协助shared_ptr工作,像旁观者那样观测资源的使用情况。(2)、2个重要接口:boolexpired()const;//判断是..
分类:
其他好文 时间:
2016-07-31 16:06:26
阅读次数:
168
1、shared_ptr中的px出现原因方便对其数据空间的管理,取值和获取地址将极大的方便我们的操作。2、解决析构函数避免内存空间的泄漏。new出来的空间都没有释放掉!释放拥有权靠的是引用计数。~shared_count(){
if(pi){//判断所指父类是否为空
pi->release();//释放new出来的..
分类:
其他好文 时间:
2016-07-31 08:01:46
阅读次数:
402
1、共享性智能指针(shared_ptr)引用计数型指针shared_ptr是一个最像指针的“智能指针”,是boost.smart_ptr库中最有价值,最重要,也是最有用的。shared_ptr实现的是引用技术型的智能指针,可以被拷贝和赋值,在任意地方共享它,当没有代码使用(此时引用计数为0)它才删除被动态..
分类:
其他好文 时间:
2016-07-30 22:48:26
阅读次数:
300
接口:http://zh.cppreference.com/w/cpp/memory/shared_ptr 这个网站比较好,概念比较简洁 如何使用:http://www.cnblogs.com/TianFang/archive/2008/09/19/1294521.html boost::share ...
分类:
其他好文 时间:
2016-07-30 16:34:12
阅读次数:
105
1、VC和VSVC版并不是标准C++,VS版符合标准C++,其语法相当严格。缺点:VC和VS都只能释放一个具体类型空间,不能对数组空间进行释放,还有写时拷贝的问题;所以引发了Boost库的出现来解决此类问题。2、Boost库推荐看一下Boost库完全开发指南。Boost本身是开源库,在C++中的地位..
分类:
其他好文 时间:
2016-07-30 15:10:40
阅读次数:
147