C++必知必会
文章平均质量分 89
walkerkalr
学无止境,梦想不止
展开
-
C++必知必会(1)
条款1数据抽象抽象数据类型的用途在于将变成语言扩展到一个特定的问题领域。一般对抽象数据类型的定义需要准训以下步骤:1. 为类型取一个描述性的名字2. 列出类型所能执行的操作3. 为类型设计接口4. 实现类型条款2多态多态类型,从基类继承的最重要的多系就是它们的接口,而不是它们的实现。条款3设计模式条款4 STLSTL优秀思想体原创 2014-05-23 19:38:12 · 1522 阅读 · 0 评论 -
C++必知必会(2)
17.处理函数和数组声明指向函数的指针声明与指向数组的指针声明很容易混淆,主要原因在于函数和数组修饰符的优先级比指针修饰符的优先级高,因此通常需要使用圆括号。int *f1(); //一个返回值为int* 的函数int (*fp1)(); //一个指针,指向一个返回值为int的函数 const原创 2014-05-26 22:12:54 · 873 阅读 · 0 评论 -
C++必知必会(5)
条款47模板局部特化不能对函数模板进行局部特化,所能做的即使重载它们。但可以对类模板进行局部特化。template class Heap; //主模板template classHeap{…}; //局部特化局部特化的语法类似完全特化,但是他的模板参数列表是非空的。当使用任何(未经修饰的)指针类型来实例化一个Heap时,这个局部特化版将优先于主模板而被采用。进一步而言原创 2014-05-28 18:22:03 · 1007 阅读 · 0 评论 -
C++必知必会(3)
条款26操作符函数查找class X{ public: Xoperator %( const X& ) const; //二元取余操作 XmemFunc1( const X&); voidmemFunc2();};可以采用中缀或函数调用语法来调用这个重载原创 2014-05-27 21:38:59 · 760 阅读 · 0 评论 -
C++必知必会(4)
条款35 placement new直接调用构造函数是行不通的,然而可以通过使用placement new来哄骗编译器调用构造函数:void *operatornew(size_t, void* p) throw(){ return p;}placement new是operator new的一个标准的重载版本,也位于全局名字空间中,但和我们通常看到的operator new不同,原创 2014-05-28 14:23:33 · 799 阅读 · 0 评论 -
C++必知必会(6)
条款55模板的模板参数见一下stack适配器采用默认Deque的例子template>class Stack{public: ~stack();void push();private: Conts_;};这里,Stack的用户现在必须提供一个模板实参,表示元素的类型,还可以提供一个表示容器的类型(默认为deque),并且容器必须能够容原创 2014-05-29 16:16:23 · 972 阅读 · 0 评论