C++ 模板基础谈

[转载] [佚名] [2008-11-26 11:36:29]

1. 什么是模板 模板定义:模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码可重用性。 我们知道,C++ 是一种“强类型”的语言,也就是说一个变量,编译器必须确切的知道它的类型,而模板就是构建在这个强类型语言基础上的泛型系统。 2. 模板的语法 模板函数 template 〈 typename {类型参数名称}, [ int {Name}=...][, ...] 〉 {函数定义} 模板类 template 〈 typename ... , [ int {Name}=...] 〉 class ... 模板的参数可以是类型,或者是一个 int 型的

阅读全文 发表评论 浏览/评论:40/0

Windows时间函数大全

[转载] [佚名] [2008-11-25 13:20:24]

介绍我们在衡量一个函数运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执行一个特定的操作,比如在多媒体中,比如在游戏中等,都会用到时间函数。还比如我们通过记录函数或者算法开始和截至的时间,然后利用两者之差得出函数或者算法的运行时间。编译器和操作系统为我们提供了很多时间函数,这些时间函数的精度也是各不相同的,所以,如果我们想得到准确的结果,必须使用合适的时间函数。现在我就介绍windows下的几种常用时间函数。1:Sleep函数使用:sleep(1000),在Windows和Linux下1000代表的含义并不相同,Windows下的表示1000毫秒,也就是1秒钟;Lin

阅读全文 发表评论 浏览/评论:33/0

CTime CTimeSpan COleDateTime使用方法

[转载] [佚名] [2008-11-25 13:16:21]

要获取两个时间差,如两个CTime的时间差,可以使用MFC中的CTimeSpan类。CTime time1 = CTime::GetCurrentTime();...其它代码...CTime time2 = CTime::GetCurrentTime();// 两个CTime相减得到CTimeSpanCTimeSpan timeSpan = time2 - time1;// 得到总的秒数CString strTime = timeSpan.Format("%H:%M:%S"); //输出时间格式为 00:00:00,若timeSpan=100,则输 出为:0

阅读全文 发表评论 浏览/评论:63/0

深入模板基础

[转载] [佚名] [2008-11-24 22:03:09]

1.1 参数化声明1.1.1 联合模板联合模板也是允许的,比如:template〈typename T〉union AllocChunk{T object;unsigned char bytes[sizeof(T)];};1.1.2 函数模板的缺省调用实参template〈 typename T〉void fill(Array〈T〉*, T const& = T());该例子说明,缺省调用实参可以依赖于模板参数。在调用fill时,如果提供了第二个函数调用参数的话,就不会实例化这个缺省实参。这同时也说明了:即使不能基于特定类型T来实例化缺省调用实参,也可能不会出现错误。比如

阅读全文 发表评论 浏览/评论:16/0

静态成员变量的初始化,vector类型变量初始化

[转载] [佚名] [2008-11-24 21:56:23]

某些情况下,在写C++类的时候,希望能通过一个静态初始化函数来对类的一些静态成员进行初始化。比如,往静态的std::map成员或者std::vector成员里添加一些固定的内容等。这在Java里通过static块很容易实现。但在C++里该怎么办呢?如果要初始化一个普通的静态成员,只需要在实现文件(源文件)中定义该成员并赋予初始值即可,比如:class Test1 {public:static string emptyString;};string Test1::emptyString = "";// also can be// string Test1::emptyStri

阅读全文 发表评论 浏览/评论:11/0

CListBox & CCheckListBox 使用技巧

[转载] [佚名] [2008-11-24 19:41:45]

CListBox 和 CCheckListBox 简介CListBox用来输出一系列的文本,每条文本占一行。CCheckListBoxCCheckListBox是由CListBox派生,具有CListBox的所有功能。与CListBox唯一不同是在每一行前面加上了一个检查框(Check Box)。要使用CCheckListBox,需要在资源视图(resourceview)中(1) Style-〉Owner draw-〉选中Fixed(2) 选中Has Strings(3) 添加成员变量方法一:通过类向导(ClassWizard)给添加成员变量CListBox m_listbox;,然后手动改为

阅读全文 发表评论 浏览/评论:36/0

CListCtrl基本用法

[转载] [佚名] [2008-11-24 18:03:49]

CListCtrl是列表控件类,列表控件的每一行叫做一个item,每一列叫做一个subitem。每一行和每一列都有个ID号,可以确定唯一的单元格。最近使用了这个控件,有心得总结如下: (Dialog模式) 1. 创建列表控件.定义一个成员变量:CListCtrl *m_pListCtrl;在初始化对话框的时候创建列表,也就是在OnInitDialog()中创建(在哪里创建没有规定,只要符合

阅读全文 发表评论 浏览/评论:55/0

CListCtrl使用详解

[转载] [佚名] [2008-11-24 18:02:54]

1。先来介绍REPORT类型的CListCtrl:首先使用下面的语句设置CListCtrl的style:DWORD SetExtendedStyle( DWORD dwNewStyle );其中LVS_EX_CHECKBOXES 表示添加CheckBoxLVS_EX_FULLROWSELECT 表示选择整行LVS_EX_GRIDLINES 表示添加表格线如果设置了LVS_EX_CHECKBOXES属性,则可以用BOOL GetCheck( int nItem ) const;来得到某一行是否Checked。可以先用下面的语句来删除以前的东西:for(int k=2;k〉=0;k--) //注意

阅读全文 发表评论 浏览/评论:14/0