
C/C++
文章平均质量分 68
pois
这个作者很懒,什么都没留下…
展开
-
再议动态二维数组,通过一句表达式完成矩阵的转置
先来回顾一下通常动态二维数组的创建过程,这里以 m×n int数组为例 int **pp=new int*[m]; for(int i=0;i<m;++i) *(pp+i)=new int[n]; //通过*(*(pp+i)+j)操作数组元素(i,j) for(i=0;i<m;++i) delete [] *(pp+i); delete [] pp;原创 2012-02-03 22:02:16 · 1991 阅读 · 0 评论 -
再议:__cdecl与__stdcall 调用约定在动态链接库调用中不同的表现
dll中函数声明 dll中函数名 void __declspec(dllexport) add(int, int)?add@@YAXHH@Z extern "C" void __declspec(dllexport) add(int, in原创 2013-05-28 15:51:54 · 2820 阅读 · 0 评论 -
__cdecl与__stdcall 调用约定在动态链接库调用中不同的表现
首先建立__cdecl 调用约定函数的动态链接库。FirstDll.cpp#include BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved )原创 2012-04-06 19:35:36 · 4744 阅读 · 0 评论 -
CArray 的两种方式与类中包含指针情况
参考:http://bbs.youkuaiyun.com/topics/390452085项目很复杂,我简化了下代码考虑一个类进 CArray class A{ int *m_a;public: A()//不带参数构造函数,只是为了通过编译 { int fenge = 4; }; A(int n)//我需要用的构造函数 { m_a = new int原创 2013-05-28 08:40:02 · 3363 阅读 · 0 评论 -
阶乘、阶乘之和的函数式风格实现
#include template class Factorial{public: static int const vl = N * Factorial::vl;};template{public: static int const vl = 1;};template class FactorialSum{public: static int const vl原创 2013-10-11 22:11:47 · 944 阅读 · 0 评论 -
vector的push_back对于拷贝构造和赋值操作的调用
http://blog.youkuaiyun.com/silyvin/article/details/8985323原创 2014-06-08 09:43:21 · 4947 阅读 · 0 评论 -
函数传值 复制构造函数 深度拷贝
class A{ int *m_pi;public: A() { m_pi = new int; } ~A() { delete m_pi; }};void func(A _a){ int a = 0;}void main(){ A a; func(a);}运行后崩溃,原因是当调用func时,产生一个临时对象,并未调用构造函数,调用默认原创 2013-05-07 21:51:07 · 1859 阅读 · 0 评论 -
小议函数指针
void f1(int *pi){ int *a = pi;}void f2(double *pd){ int *a = (int *)pd; *a = 2000;}class B{public: B():member(-1){} int member; int func(int _i){return _i * 2;}};int _tmain(int argc原创 2014-06-18 23:42:12 · 789 阅读 · 0 评论 -
一个指针的引用引发的血案
tes *ptes;tes *&gfunc(){return ptes;}以上是原创 2014-05-29 23:05:55 · 1172 阅读 · 0 评论 -
DLL 导出类
http://www.cnblogs.com/cswuyg/archive/2011/10/06/DLL2.html编写DLL所学所思(2)——导出类http://www.cppblog.com/suiaiguo/archive/2009/07/20/90663.htmlDLL入门浅析(4)——从DLL中导出类转载 2013-08-14 17:15:17 · 681 阅读 · 0 评论 -
换行符‘\n’和回车符‘\r’
http://hi.baidu.com/jsj09/blog/item/860fa6fb376e4c9f9e5146a7.html在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。转载 2012-02-20 10:47:25 · 46124 阅读 · 7 评论 -
CLAPACK动态调用
http://blog.youkuaiyun.com/silyvin/article/details/9104463在VS中用CLAPACK解决广义特征值问题中介绍了原创 2014-04-17 23:40:29 · 1364 阅读 · 0 评论 -
在VS中用CLAPACK解决广义特征值问题
CLAPACK是LAPACK的C语言接口。LAPACK的全称是Linear Algebra PACKage,是非常著名的线性代数库。LAPACK是用Fortran写的,为了方便C/C++程序的使用,就有了LAPACK的C接口库CLAPACK。现在通过使用CLAPACK中的一个函数dggev_解广义特征值问题来学习一下使用的方法。平台:vs05步骤:1.下原创 2013-06-16 01:25:41 · 4510 阅读 · 0 评论 -
C++ 中dynamic_cast<>的使用方法
/*这是从网上摘下的例子,主要讲述了 dynamic_cast/* 作用:将一个基类对象指针(或引用)cast到继承类指针,dynamic_cast会根据基类指针是否真正指向继承类指针来做相应处理, 即会作一定的判断。 对指针进行dynamic_cast,失败返回null,成功返回正常cast后的对象指针; 对引用进行dynamic_c转载 2013-05-06 16:16:08 · 681 阅读 · 0 评论 -
类成员析构、虚析构函数、动态生成对象相关的 关于析构顺序的杂谈
#include class A{public: A(){cout << "A con" << endl;} ~A(){cout << "A des" << endl;}};class D{public: D(){cout << "D con" << endl;} ~D(){cout << "D des" << endl;}};class E{public:原创 2013-05-01 08:51:27 · 718 阅读 · 0 评论 -
C风格字符串大写转小写
#include using namespace std;#include void main(){ char str[]="SuNYM"; cout<<str<<endl; char *pc=&str[0]; int nLenStr=0;//注意初始化 while(*pc!='\0') { *pc=tolower(*pc); ++pc;原创 2011-12-31 20:03:58 · 2475 阅读 · 0 评论 -
C++指向指针的指针与动态数组
这里以一维字符数组开篇,#include using namespace std;void main(){ char *pc="abc"; cout<<pc<<endl; cout<<(long)pc<<endl; cout<<*pc<<endl; }输出:在本例中,字符数组"abc"存在于内存空间的const区域中,指针变量pc原创 2011-12-29 23:23:33 · 6132 阅读 · 0 评论 -
指针的引用在函数中的应用
#include using namespace std;int *&FuncTest(int *&p,int &m){ p=&m; return p;}void main(){ int nN=12;int nM=122; int *np=&nN; cout<<"n地址:"<<&nN<<" m地址:"<<&nM<<endl; cout<原创 2012-01-04 20:36:40 · 1119 阅读 · 1 评论 -
extern与static用法
http://www.cnblogs.com/M-book/archive/2011/10/12/2208734.html在讨论全局变量之前我们先要明白几个基本的概念:1. 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位转载 2012-03-01 12:48:57 · 612 阅读 · 0 评论 -
Debug和Release区别
VC下Debug和Release区别最近写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下又无法进行调试,于是只能采用printf方式逐步定位到问题所在处,才发现原来是给定的一个数组未初始化,导致后面处理异常。网上查找了些资料,在这 罗列汇总下,做为备忘~一、Debug 和 Release 的区别 Debug转载 2012-02-25 09:38:10 · 748 阅读 · 0 评论 -
跨平台C++开发环境搭建——GNU+STL+Boost+wxWidget+OpenSceneGraph
学了好长时间的C++了,鉴于对标准和设计模型模式的推崇,一直没有找到合适的GUI语言,也一直苦于GUI开发时我还要借助于Delphi,但是现在不一样了,花了一个周末整个跨平台的C++开发环境,编译器采用的MinGW(如果是Linux,就省了编译器的问题了),C++库我选择了STL(MinGW自带)和Boost,GUI我使用的是wxWidget,3D图像引擎我使用的OpenSceneGraph(鉴于转载 2012-02-01 22:14:21 · 1416 阅读 · 0 评论 -
解决头文件相互包含问题的方法
所谓超前引用是指一个类型在定义之前就被用来定义变量和声明函数。 一般情况下,C/C++要求所有的类型必须在使用前被定义,但是在一些特殊情况下,这种要求无法满足,例如,在类CMyView中保留了一个非模式对话框对象指针,该对象用于显示/修改一些信息。为了实现对话框"应用"按钮,把对话框做的修改立刻更新到view界面上,为此,需要在对话框类中需要保存view类的指针,这样定义关系就变成如下的转载 2012-05-17 13:12:48 · 666 阅读 · 0 评论 -
fopen 中 按文本读写与按二进制读写 实例
参考:http://blog.youkuaiyun.com/hinyunsin/article/details/6401854#include int main(int argc, char *argv[]){ char he[20] = "hello world\n"; FILE *outfile = fopen("t.txt", "wt"); fwrite(he, size原创 2012-12-10 10:20:58 · 10897 阅读 · 0 评论 -
C 运行时库版本
http://msdn.microsoft.com/en-us/library/Aa984820The following table lists the release versions of the C run-time library files, along with their associated compiler options and environment var原创 2012-04-06 14:35:51 · 972 阅读 · 0 评论 -
重定向输出遇到的缓冲问题
一个项目中需要迭代计算,时间长,但是在重定向输出的时候所有标准输出不能及时输出,这就要求程序主函数正常运行完后才能正常输出到文件。因为标准输出到终端时默认行缓冲或无缓冲,重定向到硬盘之后,就变成了全缓冲1. Fully buffered means that I/O takes place only when the buffer is fully, the process e原创 2012-12-11 11:33:29 · 4315 阅读 · 0 评论 -
c 复制二进制流
参考 feof与EOF feof()和EOF用法fp=fopen("0.exe","rb"); 注意 ‘b'gp=fopen("1.exe","wb"); 将fp的文件指针移至末尾用fseek然后使用ftell(fp)求出文件指针的便宜,实际上就是文件的大小rewind文件指针malloc这么大的bufferfread 读取文件内容原创 2012-12-13 09:12:43 · 862 阅读 · 0 评论 -
vector 的读写
void CPreData::ReadDataWarehouse(){ UINT nVectorSize = 0; HANDLE hFile = CreateFile(m_szDataWarehouse, FILE_READ_DATA, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);原创 2012-12-18 15:05:56 · 1102 阅读 · 0 评论 -
如何在AutoCAD中实现鼠标双击事件
摘要:本文为在AutoCAD ObjectARX二次开发中遇到的鼠标双击事件提供了多种解决方法。在AutoCAD编程中,开发者可能会有这样一个好想法,或者用户有这么一个需求:当用鼠标双击某个实体的时候,弹出一个窗体,显示实体的属性,比如说,一所学校的名称、座落等信息。(一) 在AutoCAD2000i中的实现在AutoCAD2000i中有一个新的ObjectARX API专门用转载 2013-07-08 16:27:19 · 5413 阅读 · 0 评论