C++
文章平均质量分 50
会&唱歌的鱼
这个作者很懒,什么都没留下…
展开
-
c++function和bind
在c++11中提供了两个方法std::bind和std::function对回调对象进行封装。主要是在使用回调函数的时候进行使用。function可以看作一个包装器,对可调用对象进行包装。c++里面的可调用对象包括:函数,函数指针,lambda表达式,bind创建的对象,重载了函数调用运算符的类。原创 2024-03-05 13:55:07 · 453 阅读 · 0 评论 -
c++ thread的使用 调用类里面的函数和调用类外的函数的区别
在使用thread之前要加上#include 。如果有调用的线程函数参数,那么就像这样thread thread2(Threadfunc2,3);在形参函数后面加上它的参数。原创 2024-03-04 11:28:39 · 562 阅读 · 0 评论 -
实现定时器的两种方法:使用windows api定时器 和使用c++11/14 定时器
当我有一个开发需求,符合下面的条件1.需要某个任务在程序中每隔一段时间就要执行一次,可能把这个任务封装成了一个函数。2.这种需要定时执行的任务,有2个,3个....越来越多。这个时候我们就可以考虑使用定时器,把这种任务封装成函数,放进定时器中。每隔一段时间会自动帮我们执行该任务。原创 2024-03-01 17:23:57 · 863 阅读 · 0 评论 -
c++的静态多态和动态多态
概念:同一个接口,同一个同名的函数。能实现多种不同的功能。静态多态:在编译的时候能确定具体调用的是哪个函数的多态就是静态多态,包括有函数重载和模板函数(泛型编程)动态多态:在运行时才能确定具体调用的是哪个函数,这种情况就是动态多态,主要是在类的继承中使用虚函数来实现。原创 2024-02-23 10:08:54 · 448 阅读 · 0 评论 -
c++类中的静态成员变量
1.静态成员变量属于整个类所有2.静态成员变量没有存储在类的实例化对象的空间中,是存储在全局数据区3.可以通过类名直接访问静态成员变量4.可以通过创建好的对象访问静态成员变量5.所有的实例化对象共享同一个静态成员变量6.要在类外进行初始化。原创 2024-02-20 14:26:29 · 398 阅读 · 0 评论 -
c++单例模式包括懒汉模式和饿汉模式(优劣势分析和改进方法)
在整个软件的运行过程中,让整个类有且只有一个实例化对象存在于整个进程中。是最简单的一个设计模式,然后再项目开发中也是使用最广的。原创 2024-02-20 13:53:53 · 1322 阅读 · 0 评论 -
c++父类转换为子类,子类转换为父类,子类父类指针相互强制转换
子类转换为父类之后,不能调用子类独有的函数和成员变量,只能调用子类继承的虚函数,利用多态的特性。转换为父类指针之后,不能调用ShowA()函数,和子类的b,c成员变量。只能调用Show()函数,和成员变量a输出结果。原创 2024-02-06 17:24:17 · 1056 阅读 · 0 评论 -
对c++生成的动态链接库dll进行调试,打上断点
如果你的项目使用c++开发的是动态链接库dll,开发除了专门给其他程序调用,比如c#开发的程序作为exe程序,去调用你的c++dll程序,或者java程序调用你的dll.这个技巧就派上用场了。原创 2024-01-25 15:55:58 · 506 阅读 · 0 评论 -
Visual Studio 给C++项目增加版本号,对版本号进行模块化管理
在资源目录那里选择,新增版本资源这一步比较简单正常项目中,经常有几十个dll项目,多个exe项目。要同时对这些版本进行管理,这里有一个简单的思路。原创 2024-01-24 20:47:50 · 551 阅读 · 0 评论 -
c++实现和编写自己的string类
相信都用过stl里面的std::string 类,现在我们尝试一下实现自己的string类。1.因为我们有成员变量size 表示数组的长度,可以简单找到头尾的位置。5.根据输入的参数,创建新的空间,把旧的字符拷贝过去然后删除旧的空间。2.能够通过[]进行str[3],str[4]这种,输出对应的字符。另外还需要一个成员变量表示总的分配的数组空间的大小。1.stl迭代器的功能begin(),end()这种。5.内容重新分配内存的空间大小。4.遍历数组里面的字符进行输出。4.能够直接输出里面的内容。原创 2024-01-23 19:59:15 · 345 阅读 · 0 评论 -
如何使用c++max函数,min函数
直接调用algorithm库自带的算法函数。原创 2024-01-23 19:34:15 · 382 阅读 · 0 评论 -
mysql++库的分享和介绍
transaction类 :transaction类为数据库操作提供了事务机制,保证一系列操作的原子性Connection类:对Mysql数据库操作的基础,连接数据库相关的类Query类: 继承std::stringstream,因此,程序员可以像操作Stream 一样操作Queryle类,来生成正确的sql语句 Query query;我们也可以使用模板和ssql来生成正确的Query来对mysql进行操作。原创 2024-01-22 20:46:40 · 1108 阅读 · 0 评论 -
c++的struct结构体的序列化和反序列化和json的序列化和反序列化的通俗直白的解释和说明
序列化转换成字节流,能方便的进行保持和在网络进行传输。反序列化能把字节流数据转换成结构化的数据,方便读取和识别。首先要明白一个概念,如果用int*指针对,一块内存进行遍历这个指针每次加1实际上是向前移动4个字节,类似的shor*每次移动2个字节,BYTE*每次移动一个字节。原创 2024-01-22 19:28:12 · 758 阅读 · 0 评论 -
c++写入内容到txt,excel文件中csv文件格式的简便方法记录
注意事项: ios::app的后缀是为了让每次写入这个文件都是往后面追加的形式,而不是覆盖之前的内容。原创 2024-01-19 16:11:58 · 411 阅读 · 0 评论 -
选择指针还是类变量声明一个对象
经过我的总结,我认为下面这三种情况下,可以选择把对象成员定义成指针。原创 2024-01-09 17:48:58 · 330 阅读 · 0 评论 -
c++动态链接库dll的封装和调用
上面用三种方法创建了导出函数,_declspec(dllexport)修饰函数,_declspec(dllexport)修饰类,在def文件中进行声明。在属性->vc++目录->库目录这里选择 lib文件生成的目录 ,写进去,这样我们的程序才能找到对应的lib文件。将反复使用的函数,或者多个项目都会共同调用的模块封装成一个库函数让项目去调用。来说明需要导出的模块,修饰符:__declspec(dllexport)在连接器->输入那里,选择我们要调用的lib文件。,这个函数能进行导出,其他的程序能进行调用,原创 2024-01-09 14:48:35 · 879 阅读 · 0 评论 -
虚基类,虚函数和纯虚函数的区别
虚基类:解决c++多重继承,有一种情况菱形继承的时候,如果不进行处理,会导致基类在派生类中会产生多个实例的情况。虚函数:在基类中使用virtual进行声明的函数,方面在派生类中进行重写,通过虚函数可以实现c++的多态。纯虚函数:在基类中使用virtual进行声明的函数,并且没有具体的函数内容,纯虚函数参数后接“=0”;在ColleageBook中只有一份Book类的实例,避免了多个Book基类实列的存在。由于本文只讨论三者的区别,因此对虚函数的详细内容不过多的展开介绍。的,只能由派生类进行继承。原创 2024-01-08 16:58:54 · 396 阅读 · 0 评论 -
c++11使用智能指针来代替new delete
unique_ptr:独占指针,只能有一个变量指向这个地址,不能多个变量指向这个内存地址,创建了一个智能指针之后不能进行拷贝和复制,但是可以转移所有权。四,使用只能指针在项目中代替new delete,实现RAII的程序机制,初始化的时候获取资源,变量销毁的时候资源也进行释放。Tips:给只能指针分配对象的时候,只需要把对象类型写入到中就行,如果需要初始化的变量在()中写入变量。三,使用new delete的场景,比如下面的这段代码,经常在项目中我们会这么用。五,智能指针和new 结合使用。原创 2024-01-04 21:03:42 · 329 阅读 · 0 评论 -
vs visual studio c++ 查看指针指向的内存中的具体内容的小技巧,和像其他python ,c#一样方便
3.点击重新计算,就能看到对应的内存里具体内容了。2.输入你想看的变量对应的内存的空间大小。打好断点,断点处选择。原创 2024-01-02 20:55:38 · 543 阅读 · 0 评论 -
C++四种强制类型转换
C++强制类型转换,static_cast,dynamic_cast,const_cast,reinterpret_cast原创 2023-05-11 16:07:11 · 697 阅读 · 0 评论 -
经典C++题目Getmomory函数
c++ 内存原创 2023-04-26 21:13:32 · 83 阅读 · 0 评论