C++标准库
文章平均质量分 76
记录项目调试过程中遇到的一些BUG和重要概念,以C++标准知识为主,
dashumak
从未长大,从未停止成长
展开
-
C++:用memset初始化数组
1、初始化数组定义完数组之后有三种初始化方式int A[20]={0};int A[20]; for(i=0;i<sizeof(A)/A[0];i++) A[i]=0;int A[20]; memset(A, 0, sizeof(A));此外对于全局变量和静态变量在定义之后会由编译器自动初始化为02、关于memset初始化与赋值问题memset是C/C++提供的函数初始化函...原创 2019-04-25 15:28:42 · 21648 阅读 · 0 评论 -
C++:switch提示“控制传输跳过的实例化”
使用switch的时候在case下边实例化对象的时候会提示“控制传输跳过的实例化”。如下解决方法很简单,将case下的语句加上"{}"即可,也就是写成 switch (m_nCardType) { case MODBUS485_MASTER:{ CModBus485MasterDlg MDlg; MDlg.DoModal(); break; } default:...原创 2019-03-20 09:41:05 · 34332 阅读 · 9 评论 -
C++:关于一段STL泛型编程程序的简单理解
最近看到了这么一段代码,趁机补习了一遍C++STL泛型编程的知识,于此记录一下。首先代码如下//(1)定义了一个Item类型的结构体typedef struct ITEM { unsigned int i; unsigned int j;} Item;//(2)声明了一个C++泛型结构体,类型名为A_less template &amp;lt;class T&amp;gt; s...原创 2019-03-02 12:56:28 · 414 阅读 · 0 评论 -
C++:binary_function与unary_function使用详解
/****************************************************************************** aurhor: &amp;amp;nbsp; &amp;amp;nbsp;StefanChen* date: &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;20170121* b转载 2019-03-02 12:43:40 · 1697 阅读 · 0 评论 -
C++:operator关键字(重载操作符)
原博客:http://www.cnblogs.com/speedmancs/archive/2011/06/09/2076873.htmloperator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名。&amp;nbsp;这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只...转载 2019-03-02 12:37:00 · 222 阅读 · 0 评论 -
C++:条件运算符
一、运算符1. 条件运算符(?:)是C语言中唯一的一个三目运算符,它是对第一个表达式作真/假检测,然后根据结果返回另外两个表达式中的一个。&amp;amp;amp;amp;amp;amp;lt;表达式1&amp;amp;amp;amp;amp;amp;gt;?&amp;amp;amp;amp;amp;amp;lt;表达式2&amp;amp;amp;amp;amp;amp;gt;:&amp;amp;amp;amp;amp;a原创 2019-02-27 09:30:06 · 1808 阅读 · 0 评论 -
C++:数组形参的传递
数组有两个特性:不允许拷贝:无法以值传递的方式使用数组形参使用数组时通常都会转换为指针:当我们为函数传递一个数组时,实际上传递的是指向数组首元素的指针。传参的方法当下有一个数组int j[2]={0,1},我们自写了一个函数 void FindSomeOne(),要求将数组参数传进去。有以下两种方式(在函数内部使用时,Point++即可实现指针的移动)void FindSom...原创 2019-01-15 09:59:57 · 2691 阅读 · 0 评论 -
C++:关于库项目的生成和使用
我们经常在程序(尤其是一些年代比较久,比如说早期的库文件里)里见到这样的代码#ifdef __cplusplus extern &amp;amp;amp;amp;amp;amp;quot;C&amp;amp;amp;amp;amp;amp;quot; { #endif...#ifdef __cplusplus }#endif这个宏#ifdef __cplusplus意思是说,如果该文件是Cpp文件,extern &amp;amp;amp;a原创 2019-01-02 15:04:07 · 690 阅读 · 0 评论 -
C++:关联式容器Map
Map每个元素都是 key/value pair ,其中key是排序准则的基准。每个key只能出现一次,不允许重复。Map也可被视为一种关联式数组,也就是“索引可为任意类型”的数组。以具体的两个例子解释什么是map实例一#include "pch.h"#include &lt;map&gt;#include &lt;iostream&gt;#include &lt;string&原创 2018-12-04 21:32:04 · 218 阅读 · 0 评论 -
C++:关于类以及h/cpp文件的一些实用知识
一、VC编译原理解决重定义问题,首先要明白VC的编译原理:VC只编译cpp文件,这些cpp文件构成将来的exe;当VC编译A.cpp文件的时候,如果遇到了语句#include &quot;B.h&quot;,实质上是将&quot;B.h&quot;文件中的代码全部“复制”到A.cpp中,然后再继续编译A.cpp。当在B.h文件中定义全局变量a等,即使使用了避免文件重复包含的方法(如下节提到的两种方法),是不能避免“A.cpp中...原创 2018-11-21 17:22:34 · 1459 阅读 · 0 评论 -
C++:吐槽Win7专业版和Win7旗舰版对C++/程序的影响
今天遇到了一个很奇怪的问题,我的电脑是win7+64专业版的,在VC6.0上调试MFC程序,最后程序关闭的时候,弹出下述警告但是在Release版本不会出现这个问题,最关键的是在同学电脑(Win7+64旗舰版)无论是Debug还是Release都没问题,弄得我差点重装系统。后来,进入提示中的filecore.cpp(这是VC6.0软件自己的文件)的295行,程序如下void CFile::...原创 2018-11-19 17:37:33 · 663 阅读 · 0 评论 -
C++:VS2017基本操作、番茄助手的重构功能以及C++的项目工程基本配置
一、VS2017 IDE环境基本配置窗口布局:在视图中选择“类视图”、“资源视图”、“解决方案资源管理器”、“输出窗口”,以及番茄助手提供的“VAOutline”。好用的插件有一下几个:1、VS2017上使用番茄助手的说明:https://blog.youkuaiyun.com/xzytl60937234/article/details/70455777番茄助手下载地址[亲测能用]:https:/...原创 2018-09-05 22:23:01 · 11282 阅读 · 1 评论 -
C++:关于新版C++11一些细节解读(包括新版C++对库文件的引用、什么时候使用命名空间std等)
C++ 是在C语言的基础上开发的,c++由四部分组成 c,class,STL,template。STL是标准模板库,template是泛型编程模板。C++是一门强类型语言,无法像动态语言(如pythont)摆脱对输入数据类型的限制。泛型编程弥补了这个缺点,通过把通用逻辑设计为模板,摆脱了类型的限制,提供一种抽象机制,极大地提升了代码的可重用性。1、带.h的头文件和不带.h的头文件的由来...原创 2018-08-20 18:56:38 · 1492 阅读 · 0 评论 -
C++:不同类对象之间访问数据的3种简单常用的方法
C++编程中经常出现两个不同的类对象之间相互访问数据的需要,但是成员变量不是public形式,无法直接访问相应的变量,抛开全局变量不谈,常用的方法有:类封装留下的接口函数、友元机制、类静态成员变量。1、通过类封装留下的接口函数(最常用)利用类的封装特性,留下数据交互的接口,即通过public形式的成员函数访问私有的成员变量。比如创建一个CStuden类:Student.h如下...原创 2018-07-30 17:13:41 · 13181 阅读 · 3 评论 -
C++:VC++6.0工程设置解读
做开发差不多一年多了,突然感觉对VC的工程设置都不是很清楚,天天要和VC见面,虽然通常情况下一般都不会修改工程设置,但是还是有必要对它的一些设置项的来龙去脉有一定的了解,所以狂查资料,稍作整理,总结一篇文档,方便以后查阅,总得记录点什么,温故而知新嘛。进入工程设置界面有两种方法:方法一,选择法:【Project】->【Settings】方法二,快捷键:【Alt+F7】打开工程...原创 2018-07-16 22:28:19 · 3036 阅读 · 0 评论