当前位置: 首页 > wzjs >正文

网站制作软件是什么我想创个网站

网站制作软件是什么,我想创个网站,php购物网站开发文档,成都注册公司多少钱基础介绍 RAII (Resource Acquisition Is Initialization) 是一种 C 编程范式,这不是一个语法特性,而是一种处理方式。RAII的思想: 资源获取与对象初始化同时发生资源释放与对象销毁同时发生通过对象的生命周期来管理资源,确保资…

基础介绍

RAII (Resource Acquisition Is Initialization) 是一种 C++ 编程范式,这不是一个语法特性,而是一种处理方式。RAII的思想:

  1. 资源获取与对象初始化同时发生
  2. 资源释放与对象销毁同时发生
  3. 通过对象的生命周期来管理资源,确保资源的安全使用

怎么理解RAII呢?前面说了这不是一种库特性,更像是一种约定,一种管理资源的方式,c++标准库某些库特性提供了RAII资源给管理的特性,用户自己设计的类型也可以按照RAII的思想进行设计。

RAII特点

自动资源管理

这是一个核心的特点,核心就是资源管理,要确保资源的获取和销毁与对象的生命周期一致。通过这个特点可以实现资源的自动清理,防止资源泄露。请看下面的例子:

class FileHandler
{private:FILE* file;public: //构造函数获取资源FileHandler(char* filename){    file = fopen(filename, "r");if(!file) throw std::runtime_error("failed to open file");}//析构函数释放资源~FileHandler(){if(file)fclose(file);}};

异常安全

void processFile() {FileHandler fh("data.txt");  // 获取资源// 如果这里抛出异常,FileHandler的析构函数仍会被调用// 确保文件被正确关闭doSomething();
} // 作用域结束,自动调用析构函数释放资源

常见的RAII应用场景

智能指针

智能指针std::unique_ptr<T>在实现中就采用了RAII的变成范式,当创建这个指针被构造函数构造时,就会获取资源,当std::unique_ptr<T>变量声明周期结束时,就会自动释放该指针对应的对象。注意std::shared_ptr<T>变量不时RAII的思想,这种类型的变量是需要根据引用计数的数量来决定资源是否释放。示例如下所示:

class Resource {
public:void doWork() { /* ... */ }
};void foo() {std::unique_ptr<Resource> ptr(new Resource()); // RAII管理动态内存ptr->doWork();// 不需要手动删除,unique_ptr析构时会自动删除
}

互斥锁的管理

class Lock
{private:std::mutex& mtx;public:Lock(std::mutex& m):mtx(m){mtx.lock();  //构造时加锁}~Lock(){mtx.unlock();  //析构时解锁}
};void funtion()
{std::mutex mtx;Lock lock(mtx);   //此处加锁.....
}//函数结束自定解锁

数据库连接

class DBConnection {
private:Connection* conn;
public:DBConnection(const std::string& connectionString) {conn = DatabaseConnect(connectionString);if (!conn) throw std::runtime_error("Connection failed");}~DBConnection() {if (conn) {DatabaseDisconnect(conn);}}
};

优秀实践

不要使用裸指针

这里不使用裸指针的意思是,如果使用裸指针就需要自己管理这个裸指针的释放,如有可能尽可能使用一些智能指针,比如std::unique_ptr<T>,也可以使用std::shared_ptr<T>。请看下面的 例子:

Resource* source = new Resource();
.......  //业务逻辑
delete source;   //手动释放资源std::unique_ptr<Resource> res = std::make_unique<Resource>();//生命周期结束自动结束

使用标准的RAII工具

  1. 智能指针:std::unique_ptr std::shared_ptr std::weak_ptr
  2. 互斥锁和线程同步:std::lock_guard<T> std::unique_lock std::scoped_lock std::shared_lock
  3. 标准容器:所有的标准容器都是RAII的,如set map vecotor等

文章转载自:

http://tkwfI6fH.pymff.cn
http://ZRPGgvp4.pymff.cn
http://vCF1qZkd.pymff.cn
http://y5ZhuKNU.pymff.cn
http://rkVFZZ2T.pymff.cn
http://iHOFVuYu.pymff.cn
http://eQJlUyYx.pymff.cn
http://0MRCNdmx.pymff.cn
http://KBcA2QRE.pymff.cn
http://qRLarGmJ.pymff.cn
http://ZPh5KUyt.pymff.cn
http://mrwfFLBz.pymff.cn
http://p6kb3Don.pymff.cn
http://fg0Hdhlf.pymff.cn
http://gNWSkDag.pymff.cn
http://C0CmPTRE.pymff.cn
http://01G27vTa.pymff.cn
http://RB4nuKZL.pymff.cn
http://WHb5Il2p.pymff.cn
http://OsRYUzMq.pymff.cn
http://EMuhYe7A.pymff.cn
http://T3adqXRA.pymff.cn
http://EC2u9u0p.pymff.cn
http://mXgNPWzk.pymff.cn
http://pbaDKVAE.pymff.cn
http://TTXT9sR1.pymff.cn
http://orf2rI37.pymff.cn
http://g5XpIo70.pymff.cn
http://oDWh2QB7.pymff.cn
http://Bek7kwZP.pymff.cn
http://www.dtcms.com/wzjs/744748.html

相关文章:

  • 打开网页出现网站建设中专业做网站方案ppt
  • 网站开发建设明细报价表做网站的大小
  • 淘宝的网站是怎么做的企业宣传网页设计
  • 国外创意网站设计欣赏水泵网站站群建设
  • 网站域名注册信息查询wordpress 前台发布文章
  • 湖北做网站的公司图库素材网站模板
  • 营销推广型网站价格怎样做视频网站的外链
  • wap手机网站开发asp经验wordpress怎样在列表页使用瀑布流
  • 雄安网站建设优化公司个人网站制作的步骤
  • 提升网站建设品质公司淄博百度电话
  • 公司网站实名认证怎么做网站 备案 注销 影响
  • 做特产的网站开张怎么宣传北京工程信息网站
  • 柯桥网站建设域名自助服务平台
  • 帝国cms 关闭网站网站建设行业企业发展前景
  • 有个性的个人网站办公室装修费计入什么费用
  • 有些网站为什么会有弹窗中企动力是外包公司吗
  • 个人网站备案需要什么资料桔子seo工具
  • 可以做动态影集的网站wordpress添加文章属性
  • 网站建设好后怎么制作网页宁波网站制作作
  • 订餐网站的数据库建设仿第四城地方门户网站模板
  • 中国平面设计网站上海市建设局网站
  • 石家庄网站建设全包桐城网站设计
  • 门户网站系统源码阿里巴巴电子商务网站建设目的
  • 网站开发小组网页浏览器的英文缩写
  • 一对一视频网站开发海外媒体中文网
  • 网站建设必备wordpress 中文论坛
  • 网站版面设计说明网络公司需要什么资质
  • 网站维护的主要内容包括运营策划怎么做
  • 给新公司建网站聊城哪里做网站
  • 企业网站建设一般要素包括哪些阜阳专业网站建设