随笔分类 -  C++

摘要:#include <Windows.h>#include <iostream>using namespace std;class CMyLock {public: CMyLock(); ~CMyLock();public: bool Lock(); bool UnLock();private: HANDLE hEvent;};CMyLock::CMyLock(){}CMyLock::~CMyLock(){ CloseHandle(hEvent);}bool CMyLock::Lock(){ hEvent = OpenEvent(EVENT_ALL_ACCESS,TRUE 阅读全文

posted @ 2012-04-03 19:06 一年级的小学生 阅读(408) 评论(0) 推荐(0)

摘要:继承是一个重用和扩展现有类而无需修改该类的机制,从而在两者之间形成层级关系。继承差不多是吧一个对象嵌入到另外一个对象。假设你在类 B 的定义中声明类 A 的一个对象 x 对象,结果,类 B 将能够访问类 A 所有的公共的数据成员以及成员函数。然而,在类 B 中,你想要访问类 A 的所有的公共数据成员以及成员函数,需要通过类 A 的对象 x。 下面的例子示例这些: 1 #include <iostream> 2 using namespace std; 3 4 class A { 5 int data; 6 public: 7 void f(int arg) { data = ar. 阅读全文

posted @ 2012-03-11 05:29 一年级的小学生 阅读(346) 评论(0) 推荐(0)

摘要:非类型模板参数格式和声明一个下面的类型是一样的。整型或枚举指向一个对象或一个函数引用到一个对象或函数指向一个成员把非类型的模板参数声明为一个数组或者函数,将分别被转换到成指针以及指向函数的指针。下面的例子演示这些:1 template<int a[4]> struct A {};2 template<int f(int)> struct B {};3 4 int i;5 int g(int) {return 0;}6 7 A<&i> x;8 B<&g> y;类型 &i 推导出来是 int *,而类型&g 推导出来是 阅读全文

posted @ 2012-03-10 00:32 一年级的小学生 阅读(1162) 评论(0) 推荐(0)

摘要:如果你有一个合适的名字来指定一个类型,并且这个名字依赖于模板的参数,请使用关键字 typename。在模板的声明和定义中只使用关键字typename。下面的例子说明使用关键字typename。1 template<class T> class A2 {3 T::x(y);4 typedef char C;5 A::C d;6 }表达式 T::x(y) 是含糊不清的。它可能是一个调用非本地参数值 y 的函数 x() ,也可能是一个声明类型为 T::x 的变量 y 。C++将把这句表达式理解为一个函数的调用。为了让编译器把这句表达式理解为一个类型,你应该在表达式的开头添加关... 阅读全文

posted @ 2012-03-09 22:29 一年级的小学生 阅读(402) 评论(0) 推荐(0)