![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 57
wolves_liu
一起学习
展开
-
C++ const常量在多文件编程中的3种用法
首先介绍一种最常用也最简单的方法,就是将const常量定义在.h文件中。显然此方式违背了“声明位于 .h 文件,定义(实现)位于 .cpp 文件”的规律。在 C++ 多文件编程中,还有 2 种特殊情况是违背此规律的,分别是类的定义和内联函数的定义,通常情况下它们也都定义在 .h 文件中。举个例子(实例一):123456789101112//demo.hconstintnum = 10;转载 2023-11-13 16:11:44 · 378 阅读 · 0 评论 -
【C++】错误 C4996 ‘localtime‘:This function or variable may be unsafe.
严重性 代码 说明 项目 文件 行 禁止显示状态错误 C4996 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. MyCardTest d:\mycardtest\mycardtest\mycontrolcard.原创 2022-05-18 11:47:13 · 10077 阅读 · 7 评论 -
(转)Visual Studio 2017在编译时出现错误E2512:功能测试宏的参数必须是简单标识符
Visual Studio 2017在编译时出现错误E2512:功能测试宏的参数必须是简单标识符问题描述Visual Studio 2017在编译时出现错误E2512:功能测试宏的参数必须是简单标识符,如下图:解决方案:点击下图红色剪头按钮,弹出如下选项:选择“仅生成”,然后清理,重新生成即可。“生成+IntelliSense”是说:Visual Studio的IntelliSense功能类似其他IDE中的auto-completion,也就是能够自动补全。对于我来说只要转载 2022-03-17 09:34:55 · 2865 阅读 · 0 评论 -
【Cmake】在Windows下用Cmake构建C++工程项目——如何使用外部共享库和头文件——4
一. 准备工作1)在D:\vs_test\cmake_test目录下,新建t3文件夹;2)在t4下,新建目录lib、src、build和文件CMakeLists.txt。src是用来存放源文件的。lib存放库3)在目录src下,新建CMakeLists.txt和main.cpp。4)将上一节生成的两个库文件hello.lib和hello.dll放入目录lib下t4/CMakeLists.txt 内容:PROJECT(NEWHELLO)ADD_SUBDIRECTORY(src bin原创 2021-08-26 11:23:24 · 610 阅读 · 0 评论 -
【Cmake】在Windows下用Cmake构建C++工程项目——构建静态库与动态库——3
一. 准备工作1)在D:\vs_test\cmake_test目录下,新建t3文件夹;2)在t3下,新建目录lib、build和文件CMakeLists.txt。lib是用来存放源文件的。3)在目录lib下,新建CMakeLists.txt和hello.cpp、hello.h。t3目录下的CMakeLists.txt 文件内容:PROJECT(HELLOLIB)ADD_SUBDIRECTORY(lib bin)lib/CMakeList.txt 内容:SET(LIB..原创 2021-08-25 17:34:49 · 1394 阅读 · 0 评论 -
【Cmake】在Windows下用Cmake构建C++工程项目——更好一点的Hello World——2
1. 准备工作1)在D:\vs_test\cmake_test目录下,新建t2文件夹;2)在t2下,新建目录src和文件CMakeLists.txt。src是用来存放源文件的。3)在目录src下,新建CMakeLists.txt和main.cpp。注意:在cmake工程中,任何子目录都需要建立一个 CMakeLists.txtt2目录下的CMakeLists.txt文件内容:PROJECT (HELLO)ADD_SUBDIRECTORY(src bin)src/CMak.原创 2021-08-25 15:59:12 · 1708 阅读 · 0 评论 -
【Cmake】在Windows下用Cmake构建C++工程项目——cmake 的 helloworld——1
参考资料:《Cmake 实践》 Cmake Practice --CjackerCmake 实践,是在Linux系统环境下讲解的,有些地方在Windows下看不到该有的效果,而且第一节因为给出的代码有点小问题,所以也运行不成功,所以我重新在Windows环境下,自己整理一下。0. 准备工作之前的准备Cmake工具自己安装好吧,这就不用教了吧!!!https://cmake.org/files/1. 准备工作:首先,建立一个文件夹t1存放我们第一个工程,我的文件夹路径是D:\v...原创 2021-08-24 15:14:38 · 1906 阅读 · 2 评论 -
【QT】VS打开QT项目运行不成功 error MSB6006 “cmd.exe”已退出,代码为 2。
开发平台:error MSB6006 “cmd.exe”已退出,代码为 2。原创 2021-06-08 15:36:05 · 5034 阅读 · 3 评论 -
【设计模式】适配器模式 C++实现
/******************************************参考资料:《大话设计模式》******************************************/一、概念适配器模式(Adapter):将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那个类可以一起工作。二、什么情况下使用适配器模式:系统的数据和行为都正确,但接口不符时,应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模原创 2021-05-31 14:27:28 · 124 阅读 · 0 评论 -
【设计模式】工厂方法模式 C++实现
一、概念工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。二、简单工厂 VS 工厂方法简单工厂的缺点:https://blog.csdn.net/yaodaoji/article/details/116920172我们还是以计算器为例来分析,现在已经有了加减乘除运算,现在我们还想再加一个开根号运算,此时,我们需要在工厂类的case中再添加分支。我们修改了原来的类,这就违背了“开放 - 封闭原则”。所以这种模式不好原创 2021-05-27 11:42:30 · 108 阅读 · 0 评论 -
【设计模式】装饰模式 C++实现
/***********************************************************************************************参考博客:https://blog.csdn.net/wuzhekai1985/article/details/6672614参考书籍:《大话设计模式》*********************************************************************************原创 2021-05-26 13:44:37 · 192 阅读 · 2 评论 -
【设计模式】单一职责原则
单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。简单说就是一个类只负责一个职责或功能。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计。当变化发生时,设计会遭受到意想不到的破坏。...原创 2021-05-24 16:16:03 · 153 阅读 · 0 评论 -
【设计模式】开放 — 封闭原则
开放 — 封闭原则:对软件实体(类、模块、函数等等)的更改封闭,对扩展开放。通俗的来说就是,不要修改原来已经写好的类、函数等代码,原来写好的最好不要修改,只新增代码。这就是开放-封闭原则。so easy!...原创 2021-05-24 15:54:08 · 120 阅读 · 0 评论 -
【C语言/C++】大端/小端判断
1.什么是大小端?大小端是数据存储在内存的两种方式。小端是指数据的低字节存放在内存的低地址,高字节存放在内存的高地址。大端是指数据的低字节存放在内存的高地址,高字节存放在内存的低地址。2.如何判断我的电脑是大端模式还是小端模式呢?可以用联合体来写:union point { int a; char b;}un;void judge_big_litter_end(){ un.a = 1; if (un.b == 1) cout << "小端" &l原创 2021-05-19 10:08:29 · 711 阅读 · 0 评论 -
【设计模式】简单工厂模式 C++实现
一、概念工厂类作用:是一种实例化对象的方式,创造实例。只要输入需要实例化对象的名字,就可以通过工厂类相应的工厂函数来制造你需要的实例对象。简单工厂模式的核心是,对于一个父类的多个继承子类,工厂函数根据用户输入,自动new出一个子类对象并返回其父类的指针,这样利用父类的指针执行父类的虚函数,就可以动态绑定子类的重写函数,从而实现多态。二、例子讲解:计算器Operation为父类,加减乘除为Operation的四个子类,重写Result(),定义工厂类中的工厂函数,其根据用户的输入new出相应的对象实例原创 2021-05-17 11:27:38 · 164 阅读 · 0 评论 -
【设计模式】单例模式 C++实现
一、概念单例模式(Singleton): 保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。二、实现方法单例模式有三种实现方法:懒汉式、双重锁定(Double-Check-Locking)、饿汉式。1. 懒汉式先看代码:class Singleton //实现单例模式的类 {原创 2021-05-11 16:15:25 · 1424 阅读 · 4 评论 -
【C++】将十进制数转化为二进制,并将每个bit位输出 —— 10
问题:将十进制数转化为二进制,并将32个bit位的每个bit位输出代码:直接上代码:#include <iostream>using namespace std;int main(){ long long int i = 3211264; int j = 0, a[1000], bit[32]; while (i) { a[j] = i % 2; i /= 2; j++; } for (i = j - 1; i >= 0; i--) {原创 2021-04-15 13:56:37 · 1243 阅读 · 0 评论 -
【C++】windows下使用c++将数据输出到文件 —— 9
一、函数功能将得到的数据输出到指定路径文件内二、代码#include <iostream>#include <windows.h>#include <process.h> #include <fstream>#include <ctime>#include <direct.h>using namespace std;#define MAX_PATH 1000int main() { double a =原创 2020-11-03 10:50:25 · 3695 阅读 · 10 评论 -
【C++】pinv()函数原型以及matlab中的pinv() —— 8
一、pinv()原型函数形式:pinv(J, G, P);核心算法:解释:G是正定矩阵,P是矩阵J的伪逆矩阵。当G为恒定常数时,以下等式成立:函数原型:template<typename DerivedA, typename DerivedB, typename DerivedC>void pinv(const MatrixBase<DerivedA>& J, const MatrixBase<DerivedB>&G, MatrixBase&原创 2020-10-16 13:55:18 · 7515 阅读 · 4 评论 -
【C++】在子线程中调用c++类的成员函数——7
// test.hclass Test{public: Test(); ~Test(); void check();//子线程想要调用的函数 static DWORD WINAPI Fun(LPVOID lpParamter); //子线程函数};// test.cppvoid Test::check() { for (int i = 0; i < 10; i++) { printf("%d : Fun A Thread Fun Display!!\n", i原创 2020-09-27 10:58:29 · 1314 阅读 · 0 评论 -
【C++】Windows下多个子线程互斥——6
/*多线程入门参考:https://blog.csdn.net/a3192048/article/details/82152618*/多线程编程实例1:一个子线程 + 主线程 + 互斥锁:#include <windows.h>#include <iostream>using namespace std;HANDLE hMutex = NULL;//互斥量//子线程1DWORD WINAPI Fun1(LPVOID lpParamter){ for (in原创 2020-09-27 10:33:36 · 235 阅读 · 0 评论 -
【C++】vector容器用法 —— 5
1. 参考资料https://www.runoob.com/w3cnote/cpp-vector-container-analysis.html2. vector说明vector是一个封装了动态大小数组的顺序容器。可以理解为动态数组。3. vector初始化方法一:vector < int> a; //创建一个空数组方法二:vector< int> a(10); //创建10个元素的数组,不具有初值,其值不确定。类似数组定义int a[10];方法三:vec原创 2020-08-14 11:19:04 · 234 阅读 · 0 评论 -
【C++】Eigen介绍与使用 —— 4
一、Eigen介绍Eigen是可以用来进行线性代数、矩阵、向量操作等运算的C++库,它里面包含了很多算法。它的License是MPL2。它支持多平台。Eigen采用源码的方式提供给用户使用,在使用时只需要包含Eigen的头文件即可进行使用。之所以采用这种方式,是因为Eigen采用模板方式实现,由于模板函数不支持分离编译,所以只能提供源码而不是动态库的方式供用户使用。二、官网下载地址官网下载地址为: http://eigen.tuxfamily.org/index.php?title=Main_P原创 2020-08-07 11:16:06 · 2420 阅读 · 0 评论 -
VS2017的一些调试方法技巧(转)
一、基本的操作。1、启动调试。可以通过VS的调试(Debug)菜单启动调试。点击调试菜单下的“启动调试”或者按F5键启动。如果你已经在代码中加入了断点,那么执行会自动开始。注:退出调试快捷键shift+F5。图 启动调试(Start Debugging)2、断点(Breakpoints)。断点用于通知调试器何时何处暂停程序的执行。通过点击左边栏或者按F9键在当前行添加断点。在加断点之前,你需要知道你的代码将会出现什么错误,在什么地方停止执行。当调试器执行到断点处时,你可以使用其他的调试工具核对转载 2020-07-31 11:35:25 · 2211 阅读 · 0 评论 -
【C++】c与c++的const区别,什么是引用,什么是const引用
1.const在c语言和c++中的区别?例子:c编译器: const int a = 1; int* p = &a; *p = 2; printf("a = %d\n", a); // a = 2c++编译器: const int a = 1; int* p = &a; *p = 2; printf("a = %d\n", a); // 编译失败小结:在c语言中,const是只读变量,会被分配内存空间,可以通过指针改变其值;在c++中,const是真正的常量,会进原创 2020-05-16 22:59:16 · 256 阅读 · 0 评论 -
【C++】window下 使用c++遍历文件夹及其子文件夹和文件,并打印文件路径及各文件内容
这两天一直在学习如何使用c++遍历文件夹、读取文件内容和写入文件。话不多说,直接上代码 /** 文件功能:递归遍历文件夹,遍历文件夹及其子文件夹和文件.打印文件夹名称、文件名称和文件数目*** 参考:https://www.cnblogs.com/collectionne/p/6792301.html* 句柄(handle):是Windows用来标志应用程序中建立的或是使用的...原创 2018-04-12 15:31:18 · 5326 阅读 · 0 评论