C++
wangyongyuan
这个作者很懒,什么都没留下…
展开
-
C++ Primer(11)泛型算法
关键概念:算法永不执行容器提供的操作泛型算法本身从不执行容器操作,只是单独依赖迭代器和迭代器操作实现。算法基于迭代器及其操作实现,而并非基于容器操作。使用迭代器时,算法从不修改基础容器的大小,也许会改变存储在容器中的元素的值,也许会在容器内移动元素,但是,算法从不直接添加或删除元素。 使用泛型算法必须包含algorithm头文件: #include 标准库还定义了一组原创 2009-10-20 20:06:00 · 362 阅读 · 0 评论 -
模板特化(template specialization)
模板的特化(template specialization)分为两类:函数模板的特化和类模板的特化。(1)函数模板的特化:当函数模板需要对某些类型进行特别处理,称为函数模板的特化。例如: template 1 bool IsEqual(T t1, T t2)2 {3 return t1 == t2;4 }56转载 2009-11-11 17:43:00 · 1022 阅读 · 1 评论 -
C++ 模板的概念
1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.f转载 2009-11-10 14:10:00 · 1942 阅读 · 3 评论 -
模板函数、函数模板,模板类、类模板
名正言顺 中国有句古话:名不正则言不顺。一样东西,名字如果用的不好,不但听起来不舒服,而且真实的本质也容易被掩盖。如果一样东西有一个好名字,我们就能更容易的记住它和理解它。 在现代汉语中,许多词的重点都在后面,比如下面我们经常看到的两个词语。 冰雪聪明。 聪明冰雪。 冰雪聪明强调的是聪明,她像冰雪一样的聪明。 聪明冰雪强调的是冰雪转载 2009-11-10 17:56:00 · 464 阅读 · 0 评论 -
C++中虚析构函数的作用
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {}; virtual ~ClxBase() {}; virtual void DoSomething() { cout "Do something转载 2009-10-30 15:02:00 · 336 阅读 · 0 评论 -
C++ Primer笔记(14) 重载操作符与转换
重载操作符的定义重载操作符是具有特殊名称的函数:保留字operator后接需定义的操作符符号。重载操作符具有返回类型和形参表。eg:Sales_item operator+(const Sales_item&,const Sales_item&); 重载操作符必须具有一个类类型操作数用于内置类型的操作符其含义不能改变。例如,内置的整型加号操作符不能重定义://error:c原创 2009-10-27 16:03:00 · 834 阅读 · 0 评论 -
C++类对象的复制-拷贝构造函数
对于普通类型的对象来说,他们之间的复制是很简单的,例如: int a = 10; int b =a; 自己定义的类的对象同样是对象,谁也不能阻止我们用以下的方式进行复制,例如:#include iostream> using namespace std; class Test { public: Test(int temp) { p转载 2009-10-27 10:49:00 · 273 阅读 · 0 评论 -
C++ Primer笔记(13) 复制控制
当定义一个新类型的时候,需要显式或隐式地指定复制、赋值和撤销该类型的对象时会发生什么--这就是通过定义特殊成员:复制构造函数、赋值操作符和析构函数来达到的。如果没有显式定义复制构造函数或赋值操作符,编译器会为我们定义。复制构造函数、赋值操作符和析构函数总称为复制控制(copy constrol)。编译器自动实现这引起操作,但类也可以定义自已的版本。有一种特别常见的情况需要类定义自已的复制控原创 2009-10-26 11:26:00 · 369 阅读 · 0 评论 -
友元函数和友元类
友元函数和友元类 采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需转载 2009-10-26 10:13:00 · 236 阅读 · 0 评论 -
C++ Primer笔记(12) 类
使用类型别名来简化类eg: class Screen{ public: typedef std::string::size_type index; private: std::string contents; index cursor; index height,原创 2009-10-22 11:21:00 · 363 阅读 · 0 评论 -
C++中内存划分
<br />在C++中,内存划分成5个区,分别是:堆、栈、自由存储区、全局/静态存储区、常量存储区。<br /> <br />1、堆<br /> 由new分配的内存块,释由应用程序控制,编译器不用管。一般一个new对应一个delete。如果程序员没有去释放,在程序结束后操作系统自动收回。<br />2、栈<br /> 由编译器在需要的时候分配的,在不需要的时候自动清除的变量的存储区。里边的变量通常是局部变量、函数参数等。<br />3、自由存储区<br /> 由malloc分配的内存块。和原创 2010-12-14 17:28:00 · 517 阅读 · 0 评论