2009年12月20日

linux 笔记 一

摘要: linux 笔记 一1.向文件追加标准输出使用追加输出符号>>可以向某个文件末尾添加新的内容。例如:$ cat orangethis is an orange.$ cat pear >>orange$ cat orangethis is an orange.this is an pear.2.重定向标准输入2.1 重定向标准输出command [argumengts] &g... 阅读全文

posted @ 2009-12-20 23:04 ATAK 阅读(178) 评论(0) 推荐(0) 编辑

2009年11月16日

CPP Templates 之 仿函数

摘要: // bolgcontent.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <string>//仿函数//一、函数指针和函数引用//例如:#include <typeinfo>void foo(){ std::cout<<"foo() called"<&... 阅读全文

posted @ 2009-11-16 00:32 ATAK 阅读(328) 评论(0) 推荐(1) 编辑

2009年11月15日

CPP Templates 之 模板继承的技巧

摘要: // bolgcontent.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <string>using namespace std;/*类模板继承的例子*一、继承模板参数*/template<typename Base,int D>class Discriminator:... 阅读全文

posted @ 2009-11-15 23:59 ATAK 阅读(526) 评论(0) 推荐(1) 编辑

CPP Templates 之 局部类模板特化

摘要: /*局部的类模板特化*对于局部特化声明的参数列表和实参列表,存在一些约束。下面就是一些重要的约束:*1.局部特化的实参必须喝基本模板的相应参数在种类上(可以使类型,非类型或者模板)是匹配的*2.局部特化的参数列表不能具有缺省实参;但局部特化仍然可以使用基本类模板的缺省实参*3.局部特化的非类型实参只能是非类型值,或者是普通的非类型参数;而不能是更复杂的依赖型表达式*4.局部特化的模板实参不能和基本... 阅读全文

posted @ 2009-11-15 21:58 ATAK 阅读(336) 评论(0) 推荐(0) 编辑

CPP Templates 之 模板的显式特化技巧

摘要: 模板的显式特化的注意事项:一、指定的模板实参列表必须喝相应的模板参数列表一一对应。例如,我们不能用一个非类型值来替换一个模板参数。然而,如果模板参数具有缺省模板实参,那么用来替换的模板实参就是可选的:template <typename T>class Types{public: typedef int I;};template <typename T,typename U=ty... 阅读全文

posted @ 2009-11-15 21:18 ATAK 阅读(451) 评论(0) 推荐(0) 编辑

2009年11月13日

CPP Templates 之 函数签名

摘要: 函数签名只要具有不同的签名,两个函数就可以在同一个程序中同时存在对于函数签名的定义如下:1.非受限函数的名称或产生自模板的这类名称。2.函数名称所属的类作用域或者名字空间作用域;如果函数名称是具有内部链接的,还包括该名称的声明所在的翻译单元。3.函数的const,volatile或者const volatile限定符(前提是它是一个具有这类限定符的函数)4.函数的参数的类型和个数,如果这个函数是产... 阅读全文

posted @ 2009-11-13 18:30 ATAK 阅读(449) 评论(0) 推荐(0) 编辑

CPP Templates 之 模板演绎的注意事项

摘要: //一、template<typename T> void f(T);template<typename T> void g(T&);double x[20];int const seven=7;f(x);//非引用参数:T是double*g(x);//引用参数:T是double[20]f(seven);//非引用参数:T是intg(seven);//引用参数:T是... 阅读全文

posted @ 2009-11-13 18:19 ATAK 阅读(247) 评论(0) 推荐(0) 编辑

2009年11月12日

malloc与calloc区别

摘要: 一:它们都是动态分配内存,先看看它们的原型: void *malloc( size_t size ); //分配的大小 void *calloc( size_t numElements, size_t sizeOfElement ); // 分配元素的个数和每个元素的大小 共同点就是:它们返回的是 void * 类型,也就是说如果我们要为int或者其他类型的数据分配空间必须显式强制转换; 不同点是... 阅读全文

posted @ 2009-11-12 17:40 ATAK 阅读(1178) 评论(0) 推荐(0) 编辑

CPP Templates 之 类模板的继承

摘要: 类模板的继承类模板可以继承也可以被继承。1.在一个类模板中,一个非依赖型基类是指:无须知道模板实参就可以完全确定类型的基类。例如:template<typename X>class Base{public: int basefield; typedef int T;};class D1:public Base<Base<void> >{//实际上不是模板 pub... 阅读全文

posted @ 2009-11-12 16:46 ATAK 阅读(530) 评论(0) 推荐(1) 编辑

2009年11月11日

CPP Templates 之 template 关键字的用法技巧

摘要: template 关键字的用法技巧说明:限定符包括:::,.,->一、当类型名称具有以下性质是,就应该在该名称前面添加template前缀:1.名称出现在一个模板中2.名称是受限的3.名称不是用于指定基类继承的列表中,也不是位于引入构造函数的成员初始化列表中4.名称依赖于模板而且,只有当前面三个条件同时满足时才能使用前缀template,例如:template<typename T&g... 阅读全文

posted @ 2009-11-11 18:54 ATAK 阅读(641) 评论(0) 推荐(0) 编辑

导航