首页 > TAG信息列表 > SharedPtr

C++实现简易共享指针

#include <iostream> #include <memory> using namespace std; template <typename T> class SharedPtr{ private: T *_ptr; int *_pcount; public: SharedPtr(T *ptr= nullptr):_ptr(ptr),_pcount(new int(1)){}//构造函数 SharedPtr(const Sh

实现shared_ptr类

实现shared_ptr类 需要 定义两个私有变量:指向对象的指针 T* ptr,计数指针int *count; 需要实现一个初始构造函数,拷贝构造函数,析构函数,重载操作符*,-> = 。   实现代码如下: template <typename T> class sharedPtr { public: sharedPtr(T* ptr) { count = new int(

C++学习记录 - 智能指针

文章目录 1. 什么是智能指针2. auto_ptr3. unique_ptr4. shared_ptr5. weak_ptr 1. 什么是智能指针 简而言之,为了更安全的使用指针。 实现方式简单来说,就是用一个模板类把一般的指针包装起来。用这个类来维护内部指针的释放操作。 std中有四种智能指针。 auto_ptr(已弃用)u

手写 share_ptr

#include<bits/stdc++.h> using namespace std; template <typename T> class Sharedptr { public: //空参数构造, 空指针 Sharedptr():count(0), ptr((T*) 0){} //构造函数 count 必须new出来 Sharedptr(T* p) : count(new int(1)), ptr(p){} //拷贝构造函数,使其引

2021-04-01

Android Jni 调用 Poco SharedPtr 阻塞 最近有个项目需求 要在Android Jni层 处理http消息,于是 尝试将Poco库移植到Android利用 PocoNet接收发送http消息。Poco库移植到Android出现一个问题:定义类型为Poco::JSON::Parser 的变量后发生了阻塞(后面的日志不打印了)。这个问题排查很

Android Jni 调用 Poco SharedPtr 阻塞

      最近有个项目需求 要在Android Jni层 处理http消息,于是 尝试将Poco库移植到Android利用 PocoNet接收发送http消息。Poco库移植到Android出现一个问题:定义类型为Poco::JSON::Parser 的变量后发生了阻塞(后面的日志不打印了)。这个问题排查很久,最后定位到 SharedPtr 出了故

智能指针shared_ptr的实现

#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; class sharedPtr{ public: sharedPtr(){ cout << "call default construct\n"; }; sharedPtr(int *_ne

FreeImage 3.18.0 在VS2017下编译

点击FreeImage.2017.sln解决方案动态库编译点击生成工程FreeImage注意:C/C++预编译器添加预编译定义FREEIMAGE_EXPORTS,对函数进行导出静态库编译点击生成工程FreeImageLib注意:C/C++预编译器添加预编译定义FREEIMAGE_LIB输出文件保存在Dist/x32中头文件的宏定义编译细节如下:#if def