C/C++
文章平均质量分 70
vanlin5566
这个作者很懒,什么都没留下…
展开
-
[C/C++][经典探讨]类继承中,通过基类指针delete释放,是否会造成内存泄漏
原文地址:http://blog.csdn.net/code_godfather/article/details/6648033[序言]很久不写C/C++技术贴了,算一下自己用C++也有7~8年了,虽然现在用Delphi比较多,但是对C++还是有一份热情.前段时间在CSDN看到一个帖子,让我感到非常失落, 很多人都没有引用权威文献来针对这个问题进行讨论,如果没有全文文献的引转载 2013-04-28 15:02:09 · 739 阅读 · 0 评论 -
OpenGL保存bmp图片(字节对齐与RGB分量转换)
http://blog.sina.com.cn/s/blog_60707c0f0100q9vf.html现在的OpenGL己经具有GL_BGR_EXT的方式读取像素,默认己经是4字节对齐了,所以下面代码注释掉了处理部分,如果你的OpenGL不支持,GL_BGR_EXT,把注释部分复原即可。[cpp] view plaincopyprint?转载 2014-05-26 16:10:16 · 1038 阅读 · 0 评论 -
vc++实现avi文件的操作
为了对avi进行读写,微软提供了一套API,总共50个函数,他们的用途主要有两类,一个是avi文件的操作,一类是数据流streams的操作。 1、打开和关闭文件 AVIFileOpen ,AVIFileAddRef, AVIFileRelease 2、从文件中读取文件信息 通过AVIFileInfo可以获取avi文件的一些信息,这个函数返回一个AVIFILE转载 2014-05-25 17:03:49 · 3754 阅读 · 0 评论 -
MFC & OpenGL:通过鼠标操作变换视角
首先,创建一个MFC Dialog类,实现OpenGL的绘制,具体见之前的一篇博文《MFC中使用OpenGL》。 之后,使用MFC的鼠标事件函数来实现OpenGL中的视角变换,方法如下: Step-1: 在 ***Dlg.h 中继续加入如下控制视角的变量: double PI; double tFovy;转载 2014-05-25 01:42:16 · 2038 阅读 · 1 评论 -
MFC中将所画图像保存到图像文件
[cpp] view plaincopyvoid CmyPaintView::OnBmpSave() { CClientDC dc(this); CRect rect; BOOL showMsgTag; //是转载 2014-05-25 11:43:06 · 1838 阅读 · 0 评论 -
OpenGL 透明
代码如下:[cpp] view plaincopy#include #pragma comment(lib, "glut32.lib") void Initialization() { glClearColor(0.0f, 0.0f, 0.0f, 1.0f); GLfloat light转载 2014-05-18 16:11:14 · 794 阅读 · 0 评论 -
C++中将string类型转换为int, float, double类型 主要通过以下几种方式:
C++中将string类型转换为int, float, double类型 主要通过以下几种方式:# 方法一: 使用stringstreamstringstream在int或float类型转换为string类型的方法中已经介绍过, 这里也能用作将string类型转换为常用的数值类型。Demo:[cpp] view plaincopy转载 2014-04-08 00:10:19 · 566 阅读 · 0 评论 -
windows 下编译 Boost 1.50 + Visual Studio 2008
1、在c盘创建一个文件夹boost_1_50_02、下载最新的boost 库1.50到d盘,文件夹为boost_1_50_03、整个文件夹如下:D:\>cd boost_1_50_0 D:\boost_1_50_0>dir Volume in drive D is D Volume Serial Number is 7CF4-5846转载 2014-03-16 18:43:59 · 684 阅读 · 0 评论 -
OpenGL编译错误的解决
如果使用OpenGL的时候出现一下啊错误1>TEE.obj : error LNK2019: 无法解析的外部符号 __imp____glutInitWithExit@12,该符号在函数 _glutInit_ATEXIT_HACK@8 中被引用1>TEE.obj : error LNK2019: 无法解析的外部符号 __imp____glutCreateWindowWithE转载 2014-03-16 17:08:30 · 969 阅读 · 0 评论 -
call of overloaded 'max(char&, char&)' is ambiguous
最近准备着考试,其中遇到了一个题目,具体程序如下:#include #include using namespace std;#define SAFEDELETE(p) if(p){delete p;p=NULL;}templateT max(T x, T y){ cout<<"This is a template func!"<<endl; return (原创 2013-12-23 16:37:47 · 14679 阅读 · 3 评论 -
C++中Overload、Overwrite及Override的区别
Overload(重载):在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型、顺序不同),即函数重载。(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。Override(覆盖):是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名转载 2013-11-30 20:08:47 · 604 阅读 · 0 评论 -
const用法详解
const用法详解面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也是很耀眼的就const直接可以取代c中的#define以下几点很重要,学不好后果也也很严重const1. 限定符声明变量只能被读 const int i=5; int j=0; ... i=j; //非法,导致编译错误 j=i; /转载 2013-11-26 18:09:37 · 550 阅读 · 0 评论 -
如何将二维数组作为函数的参数传递
如何将二维数组作为函数的参数传递 今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单里,但是最后我也解决了遇到的问题,所以这篇文章主要介绍如何处理二维数组当作参数传递的情况,希望大家不至于再在这上面浪费时间。正文: 首先,我引用了谭浩强先生编著的《C程序设计》上面的一节原文,它简要介绍了如何将二维数组作为参数传递,原文如下转载 2013-11-26 17:35:55 · 525 阅读 · 0 评论 -
运算符重载
c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁、高效。在c++中不止函数可以重载,运算符也可以重载。由于一般数据类型间的运算符没有重载的必要,所以运算符重载主要是面向对象之间的。1.一般运算符重载在进行对象之间的运算时,程序会调用与运算符相对应的函数进行处理,所以运算符重载有两种方式:成员函数和友元函数。成员函数的形式比较简转载 2013-11-26 18:11:58 · 540 阅读 · 0 评论 -
MFC中CString转换成char数组的问题
由于结构体中用到联合体(联合体需要确定分配内存分配大小)或其它因素,需要用char数组来保存字符串,但是在MFC中一般都是用CString来存放字条串。关于它们之间的转换,在VS2008中有时会出现异常情况。在MSDN是这样写的: CString orig("Hello, World!"); // Convert to a char* const size_t转载 2013-08-01 02:37:48 · 828 阅读 · 0 评论 -
Image Warping
这次的这个小任务花了很长时间,现在回头看看,之前之所以没能在规定的时间内完成,主要原因是我花了很多时间去看了论文之外的相关资料,以下是这次assignment遇到的几个问题:1、Forward Mapping ? Reverse Mapping ?一开始读文章的时候,我对warping还不是太了解。两篇论文都是在讲述如何将坐标算出来,看完论文,我觉得好像是在说Forward Mapping原创 2013-05-14 22:53:55 · 5365 阅读 · 3 评论 -
如何将std::string转int,double? (C/C++) (C) (template)
原文地址:http://www.cnblogs.com/oomusou/archive/2006/10/10/525647.htmlAbstractstd::string为library type,而int、double为built-in type,两者无法利用(int)或(double)的方式互转,本文提出轉換的方式。Introduction使用環境:Visual C++转载 2013-04-30 10:14:22 · 1008 阅读 · 0 评论 -
MiniDraw的一些小总结
之前接触过MFC,但是,那是很久之前的事了,起码有一年多,而且之前的也是非常皮毛的...这次是狠下心来要好好学学MFC,因为以后要用到....第一次实现的是一个MiniDraw小程序,实现画直线、椭圆、矩形、根据鼠标移动画线、多边形还有撤销上一操作问题一:拖动画直线------绘图模式!其实拖动画直线的原理在于,每次拖动都是画线两次,一次是使用和背景颜色一样的画笔画,即达到原创 2013-04-28 16:31:54 · 1360 阅读 · 0 评论 -
内存分配函数 _alloc/malloc/calloc
_alloc原型:void *_alloc(size_t size);本函数与上述的两个函数不同,因为它是在栈上分配了size大小的内存,因此使用此函数分配的内存不用再担心内存释放的情况了。但是使用此函数需要注意的是:在函数内部使用此函数分配的内存随着函数的终结不复存在,因此不能将此函数分配的内存供函数外部使用。malloc原型:void * malloc(size_t siz转载 2015-01-03 21:35:48 · 926 阅读 · 0 评论