c++
文章平均质量分 87
hityct1
这个作者很懒,什么都没留下…
展开
-
c++中地址和引用的区别
请看此例,使用vc6.0#include "stdafx.h"#includeiostream>using namespace std;void swap2(int& a,int& b);//声明;引用void swap3(int* a,int* b);void swap2(int& a,int& b)//定义;引用...{ int temp=a; a=b; b=temp原创 2008-02-23 12:40:00 · 2254 阅读 · 0 评论 -
Safe Bool idiom
Safe Bool idiom转自:http://visnuhoshimi.spaces.live.com/blog/cns!35416b2a4dc1b31b!2040.entry它的参考文献(英文的):http://www.artima.com/cppsource/safeboolP.html 在阅读boost源代码,看到这个词,以前从来没有注意过,使用boost的时候也从来没有转载 2009-02-22 19:47:00 · 2368 阅读 · 0 评论 -
简单的win32对话框程序 c++ vc6.0 模式对话框 非模式对话框
模式对话框程序: LRESULT CALLBACK DialogProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch(uMsg) { case WM_INITDIALOG: //MoveWindow(hWnd,100,1转载 2008-12-28 00:16:00 · 6094 阅读 · 1 评论 -
模仿std::endl函数
使用vs2008编译器。 myend函数就是模拟endl函数的。它是个全局函数。为了达到与endl一样的用法,还定义了:mystream& operator #include "stdafx.h"//非vc编译器可去掉#include #include #include using namespace std;class mystream{原创 2009-04-16 03:36:00 · 1276 阅读 · 1 评论 -
std::priority_queue使用示例 STL
简单的使用示例。#include "stdafx.h"//非vc编译器可去掉#include #include #include using namespace std;//看看priority_queue的声明,模板的第三个参数就是比较规则,规则可以是个函数,也可是个仿函数//template ,// class Compare = l原创 2009-04-19 11:59:00 · 4227 阅读 · 0 评论 -
如何使c++类不能被继承
参考文献:http://www.research.att.com/~bs/bs_faq2.html#no-derivation http://dev.csdn.net/article/14/14193.shtm Can I stop people deriving from my class?Yes, but why do you want to? There are two co转载 2009-04-23 01:06:00 · 1001 阅读 · 0 评论 -
重载多维数组下标 c++
其实就是两个[]叠加起来,具体怎么实现看代码。#include #include using namespace std;template class arr;template class arrBody{ private: friend class arr; T* data; int row,col,current_r转载 2009-04-25 18:38:00 · 2327 阅读 · 1 评论 -
GDI+ 的Matrix::TransformPoints 与 仿射变换 c++
到百度搜索“仿射变换”,有很多介绍的。 这是vs2008中的示例:VOID Example_TransPoints(HDC hdc){ Graphics graphics(hdc); Pen pen(Color(255, 0, 0, 255)); Point points[5] = { Point(50, 100), Poi原创 2009-04-29 10:52:00 · 5336 阅读 · 0 评论 -
访问者模式(Visitor Pattern)的c++实现示例
访问者模式是一种分离对象数据结构与行为的方法,通过这种分离,可以为一个已存在的类或类群(即被访问者)增加新的操作(即访问者)而无需为它们作任何修改。访问者模式属于行为型模式。 为什么要使用访问者模式? 如何扩展一个现有的类层次结构来实现新行为?一般的方法是给类添加新的方法。但是万一新行为和现有对象模型不兼容怎么办?还有,类层次结构设计人员可能无法预知以后开发过程中将会需要哪些功能。以原创 2009-05-09 23:47:00 · 7640 阅读 · 2 评论 -
C++元编程和Boost编程库 (C++ Metaprogramming and Boost MPL )上部
整理自http://kuibyshev.bokee.com/1584716.html引论 C++的发展史是一个不断吸收程序设计领域精华和不断积累充实语言特性的过程。它的创造者Stroustrup在这门新的编程语言草创之初就定下了几个基本的目标,二十年过去了,至今这些目标仍然是C++继续发展的指南针。其中他明确指出,这种语言不应强迫程序员使用单一程序设计形式[2转载 2009-05-15 17:50:00 · 8623 阅读 · 1 评论 -
C++元编程和Boost编程库 (C++ Metaprogramming and Boost MPL )中部
Boost中的MPL库分析 MPL(Meta-Programming Library)是由David Abrahams和Aleksey Gurtovoy为方便模板元编程而开发的库,2003年被Boost吸纳为其中的一员,此后又历经一些大幅度修改,目前已经相当完善,其最新版本于2004年11月发布。MPL的出现是C++模板元编程发展中的一大创举,它提供了一个通用、高层次转载 2009-05-16 03:03:00 · 12886 阅读 · 1 评论 -
boost::any的用法、优点和缺点以及源代码分析
boost::any用法示例:#include #include #include typedef std::list list_any;//关键部分:可以存放任意类型的对象void fill_list(list_any& la){ la.push_back(10);//存放常数 la.push_back( std::string("dyunz原创 2009-05-14 22:46:00 · 5407 阅读 · 1 评论 -
c++捕获除0异常
使用vs2005。#include "stdafx.h"#include // for EXCEPTION_ACCESS_VIOLATION#include #include using namespace std;int main(int argc, _TCHAR* argv[]){ int i = 1; int j = 0; __原创 2010-01-11 14:37:00 · 4208 阅读 · 1 评论 -
Boost笔记(一) —— Smart_ptr库
前言:读《超越c++标准库——boost程序库导论》的笔记。(一)scoped_ptrboost::scoped_ptr 用于确保能够正确地删除动态分配的对象。scoped_ptr 有着与std::auto_ptr类似的特性,而最大的区别在于它不能转让所有权而auto_ptr可以。事实上,scoped_ptr永远不能被复制或被赋值!scoped_ptr 拥有它所指向的资源的所有权,并永原创 2009-02-22 03:13:00 · 1418 阅读 · 0 评论 -
将屏幕保存为图片 将当前MFC程序保存为图片 c++ vc
将屏幕保存为图片,使用vs2008编译通过。#include "stdafx.h"#include #include int __stdcall WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,转载 2009-02-21 18:25:00 · 7548 阅读 · 8 评论 -
在windows系统任务栏的托盘中显示图标 c++
//在windows系统任务栏的托盘中显示图标 //使用vc6.0++ //代码改编自《TCP/IPX协议及网络编程技术》第22章,罗军舟等著,清华大学出版社 // // 托盘指的是windows桌面窗口右下角显示图标的区域 // 管理托盘图标的函数是Shell_NotifyIcon // 为了简化使用,定义了CyctNotifyIcon原创 2007-12-05 14:20:00 · 4420 阅读 · 1 评论 -
简单模仿mfc程序
#include "stdafx.h" #include #include "resource.h" //HINSTANCE hInst; MSG msg; char ClassName[]="window_class"; char *ShowText; LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,转载 2009-01-01 14:41:00 · 1555 阅读 · 0 评论 -
int (*p)[3] 的含义
int (*p)[3]表示:p是个指针,它指向一个长度为3的整型数组。用法如下: //int (*p)[3] int a[2][3]={3,6,7,28,33,55}; int b[3]={67,98,45}; int (*p)[3]; p=a; cout<<p[1][1]<<endl;//输出33 p=&原创 2009-01-06 01:53:00 · 3969 阅读 · 2 评论 -
用InternetOpen下载小文件 vc c++
文章改自:http://hi.baidu.com/hacknothack/blog/item/4ca77710bc8e97fdc3ce79ad.html使用vc6.0通过 #include "stdafx.h"#include#include#include#pragma comment(lib,"wininet.lib")void main(){转载 2009-01-25 04:42:00 · 11971 阅读 · 5 评论 -
doube(*)() (*e)[2]的用法
e是个指针,它指向的类型是个长度为2的数组。 #include "stdafx.h"#include using namespace std;//直接定于typedef doube(*)() (*e)[2];不行,但用以下两句代替: typedef double (*pFun)();//定义函数指针pFuntypedef pFun (*e)[2];//定义型别原创 2009-01-22 16:38:00 · 1209 阅读 · 0 评论 -
多状态按钮 button vc c++ MFC CBitmapButton
本文使用vc6.0 MFC程序实现自定义的多状态button。vc9.0(即vs2008)下,去掉stdafx.h文件中的#define _WIN32_WINNT 0x0400 也可以运行(有个warning)。由于只是示例,并没有注意接口,您可以自己改;自己的美工水平不行,您可以自己更改bitmap资源。介绍了三种多状态按钮 :1)三状态按钮 鼠标在button上;鼠原创 2009-02-02 23:44:00 · 9812 阅读 · 2 评论 -
ShellExecute与ShellExecuteEx的用法 c++
转自http://www.cppblog.com/bidepan2023/archive/2007/07/20/28419.aspx Q: 如何打开一个应用程序? ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW );或 ShellExecute(this->m_hWnd,"open","notepad.exe","c:/转载 2009-02-03 16:28:00 · 5354 阅读 · 0 评论 -
C++实现计算程序运行时间 高精度
程序改自http://zhidao.baidu.com/question/57378776.html其它参考http://www.vckbase.com/document/viewdoc/?id=1301 对于精确度要求更高的定时操作,应该使用QueryPerformanceFrequency()和 QueryPerformanceCounter()函数。这两个函数是仅供Windows转载 2009-02-03 17:12:00 · 5075 阅读 · 2 评论 -
ip转换为数值 数值转换为ip c++
作为练习,自己编了一个: #include "stdafx.h"#include #include //#include using namespace std; int IPToValue(const string& strIP){//IP转化为数值//没有格式检查//返回值就是结果 int a[4]; string IP = st原创 2009-02-03 23:27:00 · 5847 阅读 · 0 评论 -
一个简单的溢出例子
使用c6.0#include "stdafx.h"#include ; void overFlow () { int a[] = { 0x78787868 }; *(a + 2) += 7; } int main () { int aa = 3; overFlow (); aa = 4; printf ("%d/n", aa);转载 2009-02-07 15:35:00 · 1159 阅读 · 0 评论 -
大数阶乘 c++
就是求n! (一) //为了明白演示,将max改为4,并以n=4为样例//由最后一句可以看出b是用来存储结果的,由高位到低位;b[max-1]为个位,b[max-2]为十位,依此类推//a和b存储的方式一样,但是用来存储中间结果的//作者没有使用乘法,显然是要以加法来替代的。#include "stdafx.h"#include #define max 1转载 2009-02-10 03:43:00 · 2353 阅读 · 0 评论 -
c++模板类特化时,其静态成员变量的特化
使用vc9.0#include "stdafx.h" #include using namespace std;template typename T>class C{public: C() { } static T m;};template typename T>T C::m;//类C原创 2008-12-05 10:15:00 · 2755 阅读 · 0 评论 -
装饰者模式(Decorator)的c++实现示例
水平有限,请多指正! 装饰者模式(Decorator)示例 例子改编自《设计者模式解析(第二版)》214页,人民邮电出版社 意图:动态的给一个对象添加职责;即提供了“即插即用”方法,不用重新编译已有部分。 问题:要使用的对象将执行所需的基本功能。但是,可能需要为这个对像添加某些功能,这些附加的功能可能发生在对象的基本功能之前或之后。解决方案:可以无需创建子类而扩展一个原创 2007-11-30 17:29:00 · 3857 阅读 · 3 评论