C/C++
文章平均质量分 58
happyever2012
这个作者很懒,什么都没留下…
展开
-
Pure virtual destructor in C++
Do not be anxious about anything, but in everything, by prayer and petition, with thanksgiving, present your requests to god. Philippians 4:6 (Bible)Can a destructor be pure virtual in C++?转载 2014-08-22 17:39:51 · 697 阅读 · 0 评论 -
为函数添加enter和exit级trace
日常开发中,我们为了辅助程序调试常常在每个函数的出入口(entry/exit)增加Trace,一般我们多用宏来实现这些Trace语句,例如:#ifdef XX_DEBUG_#define TRACE_ENTER() printf("Enter %s\n", __FUNCTION__)#define TRACE_EXIT() printf("Exit %s\n", __FUNCTIO转载 2015-03-19 14:54:14 · 342 阅读 · 0 评论 -
Trace Function Enter, Exit and Leave
http://developer.nokia.com/community/wiki/Trace_Function_Enter,_Exit_and_Leave转载 2015-03-19 17:36:05 · 279 阅读 · 0 评论 -
STL中用ERASE()方法遍历删除元素
STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。 在使用 list、set 或 map遍历删除某些元素时可以这样使用:正确使用方法1 std::list List; std:转载 2015-03-26 15:43:51 · 260 阅读 · 0 评论 -
Can you remove elements from a std::list while iterating through it?
http://stackoverflow.com/questions/596162/can-you-remove-elements-from-a-stdlist-while-iterating-through-it#转载 2015-03-26 16:01:59 · 318 阅读 · 0 评论 -
VS2012中有用的宏
预定义的宏列出预定义的 ANSI/ISO C99 和 Microsoft C++ 实现预处理宏。编译器识别预定义的 ANSI/ISO C99 C 预处理宏,Microsoft C++ 实现将提供更多宏。 这些预处理器宏不带参数,并且不能重新定义。 本文中所列的一些预定义宏用多个值进行定义。ANSI 兼容的预定义宏宏转载 2015-03-13 10:12:13 · 1391 阅读 · 0 评论 -
delete NULL是合法的!
http://bbs.csdn.net/topics/390684584转载 2015-03-18 15:02:47 · 499 阅读 · 0 评论 -
STL详解
http://wenku.baidu.com/link?url=n_88aQ1o_iKOv2PyHDI5PnaRjBEDuA0fq_W35LATkMjr1WwDtseYhyDt5Qh9ONfhyrxPfWFHiGrMJ7Db8s7ebXUaICJWGQ6To4y4k66LXsi转载 2015-04-02 08:41:07 · 483 阅读 · 0 评论 -
manifest原理和用途
dll是被动态调用的,所以会被若干个程序共享使用的 但是如果dll在应用程序不知道的情况下升级了、或是被另一个程序更改了,就可能会出现问题,即”DLL Hell”随着系统资源越来越丰富,硬盘不那么紧张,所以在XP以后的操作系统中,用新的机制来管理DLL(这种机制,这不仅仅是对于.NET而言,对于普通的Native程序也是一样的)Madifest是个XML的描述文件,对于每个DL转载 2015-04-23 12:54:00 · 1212 阅读 · 0 评论 -
在C++中调用DLL中的函数
如何在C++中调用DLL中的函数 应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接。在使用DLL之前首先要知道DLL中函数的结构信息。Visual C++6.0在VC\bin目录下提供了一个名为Dumpbin.exe的小程序,用它可以查看DLL文件中的函数结构。另外,Windows系统将遵循下面的搜索顺序来定位DLL: 1.包含EXE文件的目录,2.进程的当前工作目录转载 2015-05-20 18:15:40 · 625 阅读 · 0 评论 -
VC++中DLL中全局变量的导出和导入
在Dll中定义的全局变量***.hextern __declspec(dllimport) int g_t;//声明g_t在其他地方定义***.cpp__declspec(dllexport) int g_t = 0;//定义g_t在主程序中要用dll中的g_t变量时,需要声明extern _declspec(dllimport) int g_t;若包含了前转载 2015-05-20 18:06:28 · 1181 阅读 · 0 评论 -
C++ 容器及选用总结
C++ 容器及选用总结目录====================================================第一章 容器第二章 Vector和string第三章 关联容器第四章 迭代器第五章 算法第六章 函数第七章 在程序中使用STL====================转载 2015-05-19 17:09:45 · 348 阅读 · 0 评论 -
逆矩阵的几种求法与解析(很全很经典)
http://wenku.baidu.com/link?url=Gce-ufgVqz1bTwxrGEKy6QgZQHJvLXQT-fXbW1mQbMU-x9ifcKqBEnGQU6v45R9VZgnJ1daj4jgKSDecp_sRgulcB-O295FdJoSAILWLseG转载 2015-06-08 09:48:32 · 13671 阅读 · 0 评论 -
Windows 下主程序与动态库(*.dll)释放对方分配的内存操作要点
同样的代码程序:主程序中释放了一块在 动态库(*.dll)或共享库(*.so) 中分配的内存,Windows 将会出现程序崩溃,而 Linux 则正常运行。在 linux 下,每个进程只有一个 heap ,在任何一个共享库模块 *.so 中通过 new 或者 malloc 来分配内存的时候都是从这个唯一的 heap 中分配的,那么自然你在其它什么转载 2015-05-26 11:51:55 · 969 阅读 · 0 评论 -
11个强大的Visual Studio调试小技巧
伯乐在线注:我们在@程序员的那些事 微博上推荐了英文原文,感谢@halftone_被禁用了 的热心翻译。简介调试是软件开发周期中很重要的一部分。它具有挑战性,同时也很让人疑惑和烦恼。总的来说,对于稍大一点的程序,调试是不可避免的。最近几年,调试工具的发展让很多调试任务变的越来越简单和省时。这篇文章总结了可能节省你大量时间的11个Visual studio的调试技巧和方法。转载 2015-03-19 08:40:59 · 348 阅读 · 0 评论 -
VS2005 VS2010数据断点不能设置的原因 new data breakpoint is disabled
数据断点是VS的一项犀利功能,尤其在我司这种代码量巨大的大型系统中,想知道一个被很多地方访问的类的变量是在什么时候被改变的是一件很困难的事情,使用数据断点能极大提高debug的效率。可昨天突然遇到了数据断点按钮变灰的情况,无法进行设置。 原因是因为,数据断点只能在break mode下使用,也就是说首先得设置一个普通的断点进入debug brea转载 2015-03-19 08:40:16 · 1490 阅读 · 0 评论 -
Comparison of a float with a value in C
Predict the output of following C program.#includeintmain(){ floatx = 0.1; if(x == 0.1) printf("IF"); elseif (x == 0.1f) printf("ELSE IF"转载 2014-08-22 17:38:28 · 461 阅读 · 0 评论 -
运算符和函数的区别
http://bbs.csdn.net/topics/80028776转载 2014-08-26 11:12:20 · 710 阅读 · 0 评论 -
C++中各种类型的成员变量的初始化方法
c++各种不同类型成员根据是否static 、时候const类型的初始化方法不尽相同,java的语法就没有这么复杂,怪的得那么多人都跑去学Java了。以前面试时被人问到这个问题回答不出来,写代码时也经常搞乱了,这里翻了下书,总结一下。-----------------Test.h----------------------------#pragma onceclass Te转载 2014-09-10 17:42:21 · 636 阅读 · 0 评论 -
类的前置声明
作者:清林,博客名:飞空静渡 刚开始学习c++的人都会遇到这样的问题:定义一个类 class A,这个类里面使用了类B的对象b,然后定义了一个类B,里面也包含了一个类A的对象a,就成了这样:[cpp] view plaincopyprint?//a.h #include "b.h" class A {转载 2014-12-15 09:21:26 · 392 阅读 · 0 评论 -
extern用法总结
Extern的问题在于不知道这个关键词出现的时候到底是声明还是定义。谨记:声明可以多次,定义只能一次。函数的声明extern关键词是可有可无的,因为函数本身不加修饰的话就是extern的。但是引用的时候一样是需要声明的。而全局变量在外部使用声明时,extern关键词是必须的,如果变量无extern修饰且没有显式的初始化,同样成为变量的定义,因此此时必须加extern转载 2014-12-15 09:23:43 · 397 阅读 · 0 评论 -
免费公开课
https://www.edx.org/course转载 2015-02-06 17:26:20 · 402 阅读 · 0 评论 -
Mastering Debugging in Visual Studio 2010 - A Beginner's Guide
Mastering Debugging in Visual Studio 2010 - A Beginner's Guidehttp://www.codeproject.com/Articles/79508/Mastering-Debugging-in-Visual-Studio-A-BeginnTable of ContentsIntroductionHow转载 2015-01-20 21:06:19 · 407 阅读 · 0 评论 -
new和delete的指针类型必须一致,否则会造成未定义行为
class CC{ ... };class CMyClass{public: CMyClass() { m_p=(CC *)new CC; } ~CMyClass() { delete m_p; }private转载 2015-01-22 17:58:54 · 878 阅读 · 0 评论 -
“不完全类型”指在C++中有声明但又没有定义的类型
用delete删除一个只有声明但无定义的类型的指针,是危险的。这通常导致无法调用析构函数(包括对象本身的析构函数、成员/基类的析构函数),从而泄露资源。示例代码:引用:class C; // 在另一个cpp文件中定义C* createC(); // 在另一个cpp文件中定义int main() { C* p = c转载 2015-01-22 20:17:34 · 701 阅读 · 0 评论 -
VS中的路径宏
说明$(RemoteMachine)设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。$(References)以分号分隔的引用列表被添加到项目中。$(ConfigurationName)当前项目配置的名称(例如“Debug”)。$(PlatformName)当前项目平台的名称转载 2015-03-02 13:37:09 · 633 阅读 · 0 评论 -
Visual Studio原生开发的20条调试技巧
最近碰巧读了Ivan Shcherbakov写的一篇文章,《11个强大的Visual Studio调试小技巧》。这篇文章只介绍了一些有关Visual Studio的基本调试技巧,但是还有其他一些同样有用的技巧。我整理了一些Visual Studio(至少在VS 2008下)原生开发的调试技巧。(如果你是工作在托管代码下,调试器会有更多的特性,在CodeProject中有介绍它们的文章),下面是转载 2015-03-19 08:37:02 · 605 阅读 · 0 评论 -
可变参数函数
c/c++支持可变参数的函数,即函数的参数是不确定的。一、为什么要使用可变参数的函数?一般我们编程的时候,函数中形式参数的数目通常是确定的,在调用时要依次给出与形式参数对应的所有实际参数。但在某些情况下希望函数的参数个数可以根据需要确定,因此c语言引入可变参数函数。这也是c功能强大的一个方面,其它某些语言,比如fortran就没有这个功能。典型的可变参数函数的例子有大家熟悉转载 2015-03-19 09:40:10 · 507 阅读 · 0 评论 -
__VA_ARGS__用法
自定义调试信息的输出 调试信息的输出方法有很多种, 例如直接用printf, 或者出错时使用perror, fprintf等将信息直接打印到终端上, 在Qt上面一般使用qDebug,而守护进程则一般是使用syslog将调试信息输出到日志文件中等等... 使用标准的方法打印调试信息有时候不是很方便, 例如Qt编程, 在调试已有的代码时, 我想在打印调试信息的地方, 把代码位转载 2015-03-19 09:43:09 · 397 阅读 · 0 评论 -
详解coredump
一,什么是coredump 我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件。 通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函转载 2015-08-29 17:44:32 · 413 阅读 · 0 评论