- 博客(18)
- 收藏
- 关注
转载 函数的指针
函数指针,顾名思义,它指向一个函数的入口地址,其定义及使用如下: 定义:returntype (*ptr) (typename variable,......) 返回类型 指针名称 指向函数的参数表。 你不能这样: returntype *ptr
2009-12-31 15:44:00 479
原创 const 位置与指针的关系
int b = 500;const int* a = &b; [1]int const *a = &b; [2]int* const a = &b; [3]const int* const a = &b; [4]我们可以参考《Effective c++》Item21上的做法,如果const位于星号的左侧,则const就是用来修饰
2009-12-31 00:24:00 440
原创 字符串转换为小写的函数
第一种 char* Tolower(const char * sSource,int len ){ if (NULL==sSource) { return "" ; } char Letter[]={0}; for (int n=0;n { Letter[n] =tolower(*sSource); } char* pnew=new char[len+1]; std::
2009-12-31 00:10:00 1181
原创 c++ 代码的执行顺序
1:在初始化列表中变量的初始化是按照他们在类定义中出现的先后顺序来初始化的2:对于派生类而言:是按照从左到右的顺序来对非虚基类进行初始化的 C++构造函数调用顺序1. 如果类里面有成员类,成员类的构造函数优先被调用;2. 创建派生类的对象,基类的构造函数优先被调用(也优先于派生类里的成员类);3. 基类构造函数如果有多个基类,则构造函数的调用顺序是某
2009-12-30 21:51:00 8152 1
转载 c++ 数据类型转换 static_cast const_cast dymamic_cast reinterret_cast
* C++提供了四种新的类型强制: static_cast const_cast reinterpret_cast dynamic_cast cast 在线翻译的意思是“投射”reinterpret 在线翻译是“重新解释”1)staic_cast静态强制; 不能在无关的指针之间进行static类型强制 class CAnimal { //... public: CAnimal(){}
2009-12-30 21:06:00 1149
原创 c++ 中的几种内存
1:常量数据区域 ----主要用于存储字符串常量以及其他在编译期就已经知道值的数据2:栈----主要用于存储一些程序中的临时变量3:动态内存区域分为两种:堆和自由存储区 堆(new/delete) 自由存储区(malloc/free)4:全局/静态----在程序启动的时候,全局变量/对象或者静态变量/对象就已经被分配的存储空间,但只有等到程序执行到的时候才可以进
2009-12-30 21:05:00 745
原创 名字查找 与名字空间
namespace A{ struct X; struct Y; void f(int); void g(X);} namespace B{ void f(int i) { f(i);//将调用哪个函数? } void g(A::X x) { g(
2009-12-29 22:25:00 1066
转载 前置声明的使用
本贴为转帖 这篇文章很大程度是受到Exceptional C++ (Hurb99)书中第四章 Compiler Firewalls and the Pimpl Idiom (编译器防火墙和Pimpl惯用法) 的启发,这一章讲述了减少编译时依赖的意义和一些惯用法,其实最为常用又无任何副作用的是使用前置声明来取代包括头文件。Item 26 的Guideline - "Never #in
2009-12-29 22:23:00 547
转载 如何使用前置声明取代包括头文件
本贴为转帖 这篇文章很大程度是受到Exceptional C++ (Hurb99)书中第四章 Compiler Firewalls and the Pimpl Idiom (编译器防火墙和Pimpl惯用法) 的启发,这一章讲述了减少编译时依赖的意义和一些惯用法,其实最为常用又无任何副作用的是使用前置声明来取代包括头文件。Item 26 的Guideline - "Never #in
2009-12-29 21:01:00 373
原创 重载 ,覆盖,隐藏 区别
重载:同域不同参1:相同的作用域2:相同的函数名3:不同的参数覆盖:异域同参虚覆盖(便于记忆:抑郁同餐需覆盖,基类种中必须是虚函数)1:函数在基类种必须为虚函数2:不同的作用于域3:相同的参数作用:基类调用此函数时将调用派生类中的函数,派生类调用正常(必须给基类指针赋予派生类对象)隐藏:异域同名但无需(便于记忆:抑郁不想同餐,你就得隐藏起来)1:不同的作用域
2009-12-28 21:28:00 602
原创 CAsyncSocket的封装使用
步骤一:从CAsyncSocket派生出CAsyncSocketEx class CAsyncSocketEx: public CAsyncSocket 添加函数 SetResponseWnd(CWnd*pWnd);//pWnd是CAsyncSocket中函数具体响应的类对象指针 在CAsyncSocketEx中重写基类虚函数 virtual void OnClose(int
2009-12-28 15:18:00 1107
转载 NAT穿透
http://www.qqgb.com/Program/VC/VCnet/Program_149614.html论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。首先先介绍一些基本概念: NAT(Network Address Translators),网络地址转
2009-12-26 11:36:00 447
转载 位拷贝=浅拷贝 值拷贝=深拷贝
首先定义String类,而并不实现其成员函数。Class String{public: String(const char *ch=NULL);//默认构造函数 String(const String &str);//拷贝构造函数 ~String(void); String &operator=(const String &str);//赋值函数private:
2009-12-25 16:43:00 605
原创 VC 获取当前工作目录和执行目录的一些方法
1.System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName 获取模块的完整路径。2. System.Environment.CurrentDirectory 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。3. System.IO.Directory.GetCurrentDirector
2009-12-25 12:01:00 3839 3
转载 microsoft windows
http://technet.microsoft.com/zh-cn/library/cc757069(WS.10).aspx
2009-12-22 14:23:00 421
转载 setsockopt 设置socket 详细用法
setsockopt 设置socket 详细用法 1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2.
2009-12-21 18:04:00 847
转载 DLL注册
.dll 或.ocx控件注册时,出现 DllRegisterServer 失败提示。返回代码是: 0x80004005---------------------------解决办法---------------------------有两种方法方法1.定位到HKEY_LOCAL_MACHINE/SOFTWARE/Classes
2009-12-21 18:03:00 2710 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人