C++
文章平均质量分 56
征途开始
骡子
展开
-
std::make_shared和new初始化智能指针的区别
当在函数的实参里初始化智能指针,使用new初始化有发生异常安全性的风险,如 function_a(std::shared_ptr ptr1(new int(100)), function_b());编译器可能产生代码: 1先new对象,2再执行函数function_b,3最后将new对象的指针赋给智能指针,如果第2步 function_b发生异常退出,将导致内存泄漏。3、对象内存被延迟回收:当使用了弱指针weak_ptr引用shared_ptr时,使用make_shared初始化因为控制块和对象都在。原创 2023-09-06 14:27:10 · 1445 阅读 · 0 评论 -
std::unique_ptr智能指针定制删除器在连接池中的应用
用智能指针管理连接池(如数据库连接池、redis连接池),当智能指针离开作用域时,调用定制的删除器,删除器中调用指定的函数,并不是将连接断开,而是将连接放进一个容器中。当需要获取连接时,从连接池中获取一个空闲的连接。目录自定义删除器scoped_ptr.hapi_redis.hmain.cpp自定义删除器scoped_ptr.h#ifndef SCOPED_PTR_H_INCLUDED#define SCOPED_PTR_H_INCLUDED#include <i原创 2021-11-17 17:11:08 · 899 阅读 · 0 评论 -
模板类的对象的嵌套调用和构造函数调用顺序分析
在最近的c++项目中,框架里频繁使用模板类,并在类中有类对象指针的逐级传递和相互调用,逻辑关系复杂,因此写一个简单的例子便于理解框架。原创 2019-11-29 16:22:16 · 686 阅读 · 0 评论 -
strcpy函数执行解析
实参传递给形参的过程是将实参拷贝一份传递给形参。//============================================================================// Name : Pointer2.cpp// Author : xie// Version :// Copyright : Your copyr原创 2013-08-28 15:04:42 · 835 阅读 · 1 评论 -
C++类和动态内存分配(1)
C++中的类和动态内存分配,关键的问题如下:1、调用构造函数的问题,创建对象时调用默认构造函数还是复制构造函数还是其他自定义构造函数?2、需不需要自定义复制构造函数和重载赋值操作符;3、类中成员的内存分配是怎样的,静态成员存储在哪里?4、采用动态内存分配时要注意哪些问题?5、返回对象及const问题;示例代码如下所示;/* * string1.h * * Created on: 2016年原创 2016-06-04 22:06:29 · 1104 阅读 · 0 评论 -
String函数功能总结
1、find原型如下:(1)size_t find (const string& str, size_t pos = 0) const; //查找对象--string类对象(2)size_t find (const char* s, size_t pos = 0) const; //查找对象--字符串(3)size_t find (const char* s, siz原创 2017-05-23 14:16:26 · 712 阅读 · 0 评论 -
map用法
1、map的基本操作函数: C++ Maps是一种关联式容器,包含“关键字/值”对 begin() 返回指向map头部的迭代器 clear() 删除所有元素 count() 返回指定元素出现的次数 empty() 如果map为空则返回true e原创 2017-05-22 17:03:01 · 422 阅读 · 0 评论 -
C/C++开源库大全
【本文系外部转贴,原文地址:http://coolshell.info/c/c++/2014/12/13/c-open-project.htm】留作存档下次造轮子前先看看现有的轮子吧 值得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作...转载 2018-07-17 09:34:08 · 865 阅读 · 0 评论 -
C++设计模式之一:观察者模式
观察者模式定义了对象间的依赖关系,以至于一个对象的改变,依赖它的对象都会收到通知。求职者订阅了某职位发布网站, 当有何时的职位出现时, 他们会收到通知.#include <iostream>#include <string>#include <list>#include <functional>//消息类class JobPost...原创 2018-08-31 16:50:49 · 240 阅读 · 0 评论