C++
文章平均质量分 55
飞舞哲
技术问题请发消息,邮箱3531225003@qq.com
展开
-
Modbus从站读写数据
一、原理及工具Modbus Slaves软件的使用:传送门Modbus 协议原理:传送门Modbus poll 和 Modbus slave调试工具下载:传送门二、实验流程及相关源码(1)设置ip和端口号打开Modbus slave进行相关设置(注意这里IP和端口号可以自己进行相应设置),具体如下:(2)设置从站id初始显示地址(Address)和显示行数(Quantity)及表格行数(Rows)(3)查看报文在...原创 2021-11-09 17:26:51 · 7073 阅读 · 1 评论 -
忘易知识点
C++1.左值引用和右值引用:link2.可变参数解析:link原创 2021-07-29 10:33:37 · 148 阅读 · 0 评论 -
【1】跑通源码
Linux Web服务器搭建1.源码地址github地址:https://github.com/qinguoyi/TinyWebServer/tree/raw_version有道云笔记:http://note.youdao.com/noteshare?id=6113f882e345c50302500df7d5d3c3b4&sub=7BFE9970B41D4D8789251CDAA228536A2.使用方法2.1安装mysqlhttps://www.cnblogs.com/bo原创 2021-05-05 20:36:03 · 324 阅读 · 1 评论 -
装入时动态链接替换GetProcAddress逐个注册函数
1.LoadLibrary注册DLL文件在程序中,我们使用LoadLibrary可以加载所需的DLL文件并通过GetProcAddress函数可以注册所需要调用的DLL中的函数,这种方法在实际使用时加载DLL功能,能加快程序的装入过程并节省大量的内存空间,但存在一定的弊端,比如我们需要的函数非常多的时候,需要调用GetProcAddress进行逐一注册,这样显然不太方便。如下面的程序,需要注册的函数多达十几个: HINSTANCE vrepDll; vrepDll = LoadLi...原创 2021-04-08 19:50:18 · 280 阅读 · 0 评论 -
位图和布隆过滤器
位图基础:https://blog.csdn.net/lucky52529/article/details/90172264布隆过滤器基础:https://blog.csdn.net/lucky52529/article/details/90341779布隆过滤器公式推导:https://blog.csdn.net/qq_32834005/article/details/105540066//大数据中找出现过一次的数据 class BitMap { public: BitMap.转载 2021-03-20 10:56:47 · 530 阅读 · 0 评论 -
拷贝构造函数和赋值构造函数
目录拷贝构造函数和赋值构造函数能否进行值传递拷贝构造函数(不能进行值传递)赋值构造函数(可进行值传递)拷贝构造函数和赋值构造函数能否进行值传递 C++ 中拷贝赋值函数的形参能否进行值传递?我知道一般来说,拷贝构造函数的形参必须是自身类型的引用;但是拷贝赋值函数的形参通常也是自身类型的引用,实际上拷贝赋值函数能进行值传递。拷贝构造函数(不能进行值传递)拷贝构造函数具有如下两种形式:// 拷贝构造函数原型Person(Person&); // method 1..转载 2021-03-07 15:34:07 · 406 阅读 · 0 评论 -
C++内存对象布局
前言《c++虚函数表解析》没涉及到:有成员变量的情况、有重复继承的情况、有虚拟继承的情况、有钻石型虚拟继承的情况,这篇文章将会是《C++虚函数表解析》的一个续篇,也是一篇高级进阶的文章。对象的影响因素简而言之,我们一个类可能会有如下的影响因素:成员变量、虚函数(产生虚函数表)、单一继承(只继承于一个类)、多重继承(继承多个类)、重复继承(继承的多个父类中其父类有相同的超类)、虚拟继承(使用virtual方式继承,为了保证继承后父类的内存布局只会存在一份)上述的东西通常是C++这门语言在语义方转载 2021-03-05 08:49:31 · 117 阅读 · 1 评论 -
C++虚函数表解析
C++虚函数表解析前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。虚函数表对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual.转载 2021-03-04 17:26:32 · 169 阅读 · 1 评论 -
常用排序算法总结
// ConsoleApplication2.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include<vector>using namespace std;//1.直接插入排序 O(n^2)template<class T>void Insert(vector<T>* a){ size_t N = (*a).size(); for (int i =原创 2020-12-23 23:34:50 · 100 阅读 · 0 评论 -
visual studio程序调试
1.调用堆栈(1) 作用通过调用堆栈窗口,我们可以及时的跟踪当前堆栈上的函数调用情况,也就是说对于多重调用的情况,我们可以通过调用堆栈窗口查看当前函数被那个位置的那个函数调用了。(2) 相关实例#include <iostream>int function4() { return 4;}int function3(int f) { return function4() * f;}int function2(int f) { return function原创 2020-09-12 14:46:36 · 290 阅读 · 0 评论 -
匿名管道父子进程读文本文件和求和
4.1实验目的 通过在VS中编程,实现父子进程的管道通信,要求父进程从窗口中输入数字,输入的数字通过管道传输给子进程,子进程将输入的字符串进行相加求和,同时打开readme.txt文件计算完成后读取文档中的一行,最后以 和_文档某行字符串的形式进行管道通信返回给父进程。EG:父进程DOS输入:45子进程求和得:4+5=9文档当前字符串:Just a pipe test!父进程DOS显示:9_ Just a pipe test!4.2实验要点 由于管道单向通信的特点,因此父...原创 2020-07-27 17:37:21 · 331 阅读 · 0 评论 -
C++自动查询/搜索串口号
在VS平台上用C++查找串口号,采用注册表搜索串口号的方式,本程序直接将搜索到的串口号用阿拉伯数字打印到DOS屏幕上,相关代码如下:#include "stdafx.h"#include<iostream>#include<Windows.h>using namespace std;int GetComList_Reg(){ HKEY hkey; ...原创 2018-10-02 19:54:41 · 3371 阅读 · 0 评论 -
1.c++中预定义宏_func_
#include#includeusing namespace std;const char* hello(){/*本来执行下面的注释就可以了,但是vs2015中此函数不可用*///return _func_;/*_func_实现的方式相当于下面的方式*/static const char* _func_ = "hello";return _func原创 2017-07-01 09:37:39 · 673 阅读 · 0 评论 -
c++宏
_Pragma once操作符#pragma是一条预处理指令,简单的说他是用来向编译器传达语言标注以外的一些信息例如我们在头文件中定义了如下语句#pragma once则表示该指令会指示编译器该头文件只会被编译一次(保证头文件只被include一次)而c++11中定义了与#pragma功能相同的操作符_Pgrama,它的表示形式如下_Pragma(字符串字面原创 2017-07-01 10:53:40 · 192 阅读 · 0 评论 -
Matlab2016 与vs2015 混编(生成dll动态链接库)
关于混编的配置请移步下面的博客,笔者用的是Matlab2016b与Matlab2016进行混编的。 http://blog.csdn.net/wind_liang/article/details/51402224 博客里面非常详细的讲解了应该如何配置 Vs 以及利用matlab生成 dll 文件,这里不再赘述。混编期间遇到了不少的问题,下面主要将遇到的问题写原创 2017-08-25 15:51:11 · 12863 阅读 · 10 评论 -
c++ 构造函数初始化的执行次序
#includeusing namespace std;class ThisApp {public: int a=0; ThisApp(); int b=6; int q; void add(int m,int n);private: int c=5; int d;};ThisApp::ThisApp() { add(4, 0); cout << "kias"原创 2017-08-29 16:20:37 · 289 阅读 · 0 评论 -
static_cast 用法
原文地址:http://blog.csdn.net/jofranks/article/details/7828331用法:static_cast ( expression ) 《C++primer 第四版》中说编译器隐式执行的任何类型转换都可以由static_cast显式完成!要注意的是,此转换没有运行时检测安全!他不能转换掉expre转载 2017-09-08 16:48:29 · 1036 阅读 · 0 评论 -
C++11 新特性
原文地址:http://blog.csdn.net/jofranks/article/details/17375061C++11的设计目标是:1.使得c++成为更好的适用于系统开发及库开发的语言。2.使得c++成为更易于教学的语言。3.保证语言的稳定性,以及和C++03及c语言的兼容性。c++11 的增强点,主要包括:1.通过内存模型,线程,原子操作转载 2017-09-08 17:06:44 · 299 阅读 · 0 评论 -
getline()函数
原文地址:http://blog.sina.com.cn/s/blog_60263c1c0101ck25.html学习所用,谢谢原创作者传播智慧。如有侵权,请作者及时联系,文章将立即删除,并及时道歉!学习C++的同学可能都会遇到一个getline()函数,譬如在C++premer中,标准string类型第二小节就是“用getline读取整行文本”。书上给的程序如下:转载 2017-09-28 15:06:58 · 236 阅读 · 0 评论 -
命令行参数 opencv调用
int main(int argc,char**argv){ //TODO}其中 argc表示命令行参数的个数,argv表示命令行参数。注意:argv[0] 表示的是文件的名称,另外空格将产生新的命令行参数 ,例如 i am you father 表示的是4个命名行参数命令行参数在opencv中的使用#include #i原创 2017-10-07 20:42:23 · 1371 阅读 · 0 评论 -
无法解析的外部符号汇总
1>WinMain.obj : error LNK2019: 无法解析的外部符号 __imp__DispatchMessageW@4,该符号在函数 _WinMain@16 中被引用1>WinMain.obj : error LNK2019: 无法解析的外部符号 __imp__TranslateMessage@4,该符号在函数 _WinMain@16 中被引用1>WinMain.obj :转载 2018-01-06 11:20:43 · 4007 阅读 · 1 评论 -
VS相对路径设置(VS路径配置)
在VS的工程中常常要设置头文件的包含路径,通常一般会选择使用相对路径,但是这样设置的坏处也显而易见,那就是你写的代码只能在你的电脑上使用,如果换一台电脑那么你的程序就用不了。因为在你的电脑上的路径不一定就是在别人电脑上的路径,比如配置opencv的时候你电脑的opencv可能安装在C盘下的某个文件夹而别人的可能安装在D盘的某个文件夹。所以要想使用你就必须重新配置一下你的程序。另外,有的时候头文...原创 2018-03-02 09:51:53 · 31231 阅读 · 6 评论 -
error C3646 (一个或多个重定义的符号)
1.编译出现 error C3646: 未知重写说明符a.h a.cppb.h b.cpp在a.h 中#include了 a.h ,然后在b.h 中又#include了 b.h ,然后这个错误就出现了。2.发现一个或多个重定义的符号在写头文件的时候a.h a.cpp两者之间定义了一个变量而不是函数或者结构体或者类,在其他的cpp文件中包含了这个含有变量定义的头文件即 b.cpp中#in...原创 2018-03-03 15:56:27 · 1073 阅读 · 0 评论 -
构造函数的调用时机/次数
一个变量只能调用一次构造函数,那就是在定义变量的时候调用,除非变量为局部变量,否则不会重复调用,一直到程序结束也就调用那么一次。也就是说只有在定义新的变量的时候才会调用构造函数。【eg1】定义在主函数的情况#include#includeusing namespace std;class A{public:A();int a;int b;int原创 2017-02-08 18:02:20 · 1452 阅读 · 0 评论