阳光VIP

少壮不努力,老大徒伤悲。平日弗用功,自到临期悔。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 71 72 73 74 75 76 77 78 79 ··· 139 下一页

2012年2月4日

摘要: Observable类 这是位于jdk包java.util中的类,该类实现了简单的Observer模式中的ConcreateSubject角色。Observable类使用Vector保存一组Observer的引用。提供了添加和删除这些Observer引用的方法: publicsynchronizedvoid addObserver(Observer o)//添加一个Observer publicsynchronizedvoid deleteObserver(Observer o)//删除一个Observer publicsynchronizedvoid deleteObservers()//删 阅读全文

posted @ 2012-02-04 22:01 阳光VIP 阅读(92) 评论(0) 推荐(0) 编辑

摘要: 1)从http://sourceforge.net/project/showfiles.php?group_id=109071中下在WTL8.0的Release包WTL80.exe2)执行WTL80.exe,按照默认路径解压到C:/WTL80目录3)命令行中运行C:/WTL80/AppWiz/setup80.js 脚本,这个脚本负责创建VC2005使用的WTL向导文件4)现在可以开始使用VC2005编程了,注意工程的C++和Resource属性Additional Include Directories设置为C:/WTL80/include。Debug和Release模式都要设置。如果是vc6 阅读全文

posted @ 2012-02-04 22:00 阳光VIP 阅读(136) 评论(0) 推荐(0) 编辑

摘要: 通过request对象 request对象的类型为HttpServletRequest。在JSP翻译成的Java类中,有这样的函数:public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException 当客户请求到达服务器时,该函数将被调用。该函数负责生成并输出客户请求的html代码。HttpServletRequest是一个接口,扩展自ServletRequest接口。该接口提供了一系列方法,主要用于http. 阅读全文

posted @ 2012-02-04 22:00 阳光VIP 阅读(571) 评论(0) 推荐(0) 编辑

摘要: 智能指针类auto_ptr 98 C++标准只规定了一个智能指针,就是template <class Type>class auto_ptr 下面是示例代码:#include <memory>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ auto_ptr<string> spString(new string("hello,world")); size_t length=spString->length(); return 0;} 模板参数Type是auto_pt 阅读全文

posted @ 2012-02-04 21:59 阳光VIP 阅读(183) 评论(0) 推荐(0) 编辑

摘要: WM_CONTEXTMENU消息会在右键点击窗口客户区的时候发出,通过处理该消息,我们可以在此时弹出上下文菜单。 我们可以添加一个菜单资源。如下图: 我们利用CMainFrame的成员变量CCommandBarCtrl m_CmdBar来显示我们的上下文菜单。LRESULT CMainFrame::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled){ CMenu menu; menu.LoadMenu(IDR_MENU1); CMenuHandle menuPopup = menu.GetSubM 阅读全文

posted @ 2012-02-04 21:59 阳光VIP 阅读(255) 评论(0) 推荐(0) 编辑

摘要: 基本知识程序做错误检查是必要的,通常我们可以通过返回值告诉客户有了错误,不过异常提供了更加方便的手段和丰富的信息。当某处程序发现了错误,可以选择自己处理或者交给外部调用者处理,比如:void Func(char* p){if(p==NULL){throw std::invalid_argument(“p is NULL”);}}而调用者可以选择拦截该异常对象或者放过,交由更外层的逻辑处理。try{Func(NULL);}catch(std::invalid_argument const& e){cout<<e.what()<<endl;throw;}这个例子中, 阅读全文

posted @ 2012-02-04 21:58 阳光VIP 阅读(147) 评论(0) 推荐(0) 编辑

摘要: STL容器顺序容器顺序容器将单一类型的元素聚集起来,然后根据位置来存储和访问这些元素。顺序容器的元素排列次序与元素值无关,而是由元素添加到容器里的次序决定。STL中最常用的顺序容器是vector、list、deque。在这里,我不打算介绍如何使用这些容器类的基本函数,这将作为课后作业。我把篇幅放在如何选择使用这三种容器上。vector<>vector被称为动态数组,原始的静态数组一旦越界可能会悄无声息的修改掉不该修改的内存,而vector会立即出错,抛出异常。vector具备动态增长的能力,如果空间不够,vector会创建一块更大的连续空间,然后将原来的数据搬迁到新的空间中。vec 阅读全文

posted @ 2012-02-04 21:57 阳光VIP 阅读(144) 评论(0) 推荐(0) 编辑

摘要: Function Objects函数对象的定义:可以使用函数调用语法进行调用的任何对象。如果一个类或者结构A实现了ResultType operator()(Parameters)方法(即重载了函数调用操作符),当客户编写代码如A()时,其实就是通过默认构造函数创建了A的对象,然后调用上面的这个operator()方法。函数对象拥有几个优点:1)因为函数对象可以有成员变量,因此可以在构造函数中初始化成员变量,因此与一般函数相比,函数对象拥有状态。这主要带来的是灵活性。比如函数Func接受一个函数对象的引用A,然后调用A(),客户可以预先创建不同的函数对象,比如A(1),A(2)(假设A类构造函 阅读全文

posted @ 2012-02-04 21:57 阳光VIP 阅读(126) 评论(0) 推荐(0) 编辑

摘要: 性能优化Linux下程序性能分析工具gprofgprof 安装在Linux 系统的 /usr/bin 目录下. 它能剖析你的程序,并分析出程序的哪一个部分在执行时最费时间.gprof 将告诉你程序里每个函数被调用的次数和每个函数执行时所占时间的百分比. 你如 果想提高你的程序性能的话这些信息非常有用.为了在你的程序上使用 gprof, 你必须在编译程序时加上 -pg 选项. 这将使程序在每次 执行时产生一个叫 gmon.out 的文件. gprof 用这个文件产生剖析信息.在你运行了你的程序并产生了 gmon.out 文件后你能用下面的命令获得剖析信息:gprof <program_na 阅读全文

posted @ 2012-02-04 21:56 阳光VIP 阅读(157) 评论(0) 推荐(0) 编辑

摘要: 多线程信号驱动I/0和异步I/0的区别信号驱动I/0是指进程预先告知内核,使得当某个描述字上发生某事时,内核使用信号通知相关进程。异步I/0是进程执行I/0系统调用(比如读或者写),内核启动I/0操作后立刻返回进程,进程可以在I/0操作执行期间继续处理别的事情,然后当I/0操作成功或者失败时,内核以进程预先设定的方式通知进程。使用锁保护同步数据的原则多个线程使用同一个数据,必须保护该数据;如果多个线程共用一个基础类型变量,应该声明为volatile,防止编译器使用将其缓存到寄存器内的优化方式;共享的整数变量应该优先使用原子操作来修改其值;有时候,可以考虑将某些需要共享的数据只让一个单独线程处理 阅读全文

posted @ 2012-02-04 21:56 阳光VIP 阅读(137) 评论(0) 推荐(0) 编辑

上一页 1 ··· 71 72 73 74 75 76 77 78 79 ··· 139 下一页