上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 23 下一页
摘要: 参考文献:http://technet.microsoft.com/zh-cn/library/t078xe4f(v=vs.85).aspxMFC中异常处理的语法和语义构建在标准C++异常处理语法和语义的基础之上,其解决方案为:MFC异常处理 = MFC 异常处理类 + 宏1 宏: MFC定义了TRY、CATCH(及AND_CATCH、END_CATCH)和THROW(及THROW_LAST)等用于异常处理的宏,其本质上也是标准C++的try、catch和throw的进一步强化,由这些宏的定义可知:#ifndef _AFX_OLD_EXCEPTI... 阅读全文
posted @ 2013-11-19 10:53 任智康 阅读(3090) 评论(0) 推荐(0) 编辑
摘要: 1. 列举几种进程的同步机制,并比较其优缺点。 原子操作 信号量机制 自旋锁 管程,会合,分布式系统2. 进程之间通信的途径共享存储系统 消息传递系统 管道:以文件系统为基础3. 进程死锁的原因资源竞争及进程推进顺序非法4. 死锁的4个必要条件互斥、请求保持、不可剥夺、环路5. 死锁的处理鸵鸟策略、预防策略、避免策略、检测与解除死锁6. 操作系统中进程调度策略有哪几种?FCFS(先来先服务),优先级,时间片轮转,多级反馈 MFC的多线程函数必须声明为静态的或者是全局函数(不同的在于全局函数不能访问类的私有静态成员,而静态类函数可以):但这样的线程函数只能访问静态的成员变量,要实现访问... 阅读全文
posted @ 2013-11-19 10:31 任智康 阅读(560) 评论(0) 推荐(0) 编辑
摘要: 堆排序:1.堆堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆,满足 Key[i]#includeusing namespace std;void HeapAdjust(int *a,int i,int size) //调整堆 { int lchild=2*i; //i的左孩子节点序号 int rchild= 阅读全文
posted @ 2013-10-18 21:26 任智康 阅读(344) 评论(1) 推荐(1) 编辑
摘要: 对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例(注:抽象类即有纯虚函数 阅读全文
posted @ 2013-06-10 21:03 任智康 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 1 重载与覆盖 成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。 覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual关键字。令人迷惑的隐藏规则本来仅仅区别重载与覆盖并不算困难,但是C++的隐藏规则使问题复杂性陡然增加。这里“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。(2) 阅读全文
posted @ 2013-06-08 20:47 任智康 阅读(14077) 评论(1) 推荐(1) 编辑
摘要: 要学习好网路编程,主要看以下几个方面:1、掌握概念,诸如:同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)等。2、在实际Windows网络通信软件开发中,异步非阻塞套接字是用的最多的。平常所说的C/S(客户端/服务器)结构的软件就是异步非阻塞模式的。3、在异步非阻塞模式下的通信,要借助于多线程来开发。4、许多文章都曾经介绍过用VC++进行Socket编程的方法,直接利用动态连接库wsock32.dll进行操作,实现比较繁琐。但实际上网络编程概括为三种套接字方法:流式套接字(SOCK_STREAM)和数据报式套接字(SOCK_DGRAM)和原始套接字。流式套接字 阅读全文
posted @ 2013-06-04 14:17 任智康 阅读(7704) 评论(0) 推荐(1) 编辑
摘要: (1)什么是内联函数?内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。当你定义一个内联函数时,在函数定义前加上 inline 关键字,并且将定义放入头文件:inline voidf(inti,charc){// ...}任何在类的说明部分定义的函数都会被自动的认为是内联函数。内联函数必须是和函数体申明在一起,才有效。像这样的申明Inline Tablefunction(int I)是没有效果的,编译器只是把函数作为普通的函数申明,我们必须定义函数体。Inline tablefunction(intI) {returnI*I};这样我们才算定义了一个内联函数。我们可以把它作为 阅读全文
posted @ 2013-06-02 20:53 任智康 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 友元函数:说明: 在类型声明中将原型放入并在原型声明前加上关键字friend,但不要在定义时加上关键字friend,它的访问权限与类的成员函数的访问权限相同<声明而已为private,public,protect>作用: 把其他类中函数作为自己的友员成员函数,让特定的类成员成为另一个类的友元函数,而不必让整个类成为友元,但在使用时,必须小心排列各种声明和定义顺序(且需用到向前声明)向前声明格式:class 类名 ;//向前声明本类class 所用到的友员成员函数的类的类名 {....};//友元函数类的定义class 类名 {…}//本类的定义注意: 友元函数不要在类的内部定义,不 阅读全文
posted @ 2013-06-02 19:59 任智康 阅读(3857) 评论(0) 推荐(0) 编辑
摘要: 编写类String 的构造函数、析构函数和赋值函数,已知类String 的原型为:class String{public:String(const char *str = NULL); // 普通构造函数String(const String &other); // 拷贝构造函数~ String(void); // 析构函数String & operate =(const String &other); // 赋值函数private:char *m_data; // 用于保存字符串};// String的普通构造函数 String::String(const char 阅读全文
posted @ 2013-06-02 19:30 任智康 阅读(923) 评论(0) 推荐(0) 编辑
摘要: Windows消息机制的流程: A. 操作系统接收应用程序的窗口消息,将消息投递到该应用程序的消息队列中 B. 应用程序在消息循环中调用GetMessage函数从消息队列中取出一条一条的消息,取出消息后,应用程序可以对消息进行一些预处理。 C. 应用程序调用DispatchMessage,将消息回传给操作系统。 D. 系统利用WNDCLASS结构体的lpfnWndProc成员保存的窗口过程函数的指针调用窗口过程,对消息进行处理。PreTranslateMessage作用和使用方法PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数... 阅读全文
posted @ 2013-05-31 15:30 任智康 阅读(3447) 评论(0) 推荐(1) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 23 下一页