摘要:
1用宏扩展机制实现的函数,虽然没有类型的限制,但是有一定的危险,比如调用时传入p++等,可能出错。如:#define min(a,b) ((a) inline Type min( Type, Type );// 错误: inline 指示符放置的位置错误inlinetemplate Type min( Array, int );3函数模板指定了怎样根... 阅读全文
摘要:
1 .缺省实参可以使多个函数进入到可行函数集合中 可行函数是指可以用调用中指定的实 参进行调用的函数 可行函数可以有比函数调用实参表中的实参个数更多的参数 只要每个 多出来的参数都有相应的缺省实参即可 extern void ff( int ); extern void ff( long, int = 0 ); int main() { ff( 2L ); // 匹配 ff( l... 阅读全文
摘要:
1 .头文件不应该含有非inline 函数或对象的定义 例如 下面的代码表示 的正是这样的定义 因此不应该出现在头文件中 extern int ival = 10; double fica_rate; extern void dummy() {} 虽然ival 是用extern 声明的 但是它的显式初始化使得它实际上是个定义 类似的情况 虽然dummy()显式地声明为exter... 阅读全文
摘要:
1 缺省实参(在声明中指定)函数可以用参数表中的初始化语法为一个或多个参数指定缺省实参 例如 假设一个函数创建并初始化一个二维字符数组以便模拟终端显示器 则我们可以为屏幕的高 宽和背景字符提供缺省实参 char *screenInit( int height = 24, int width = 80, char background = ... 阅读全文
摘要:
1为了提高效率 ,实际上vector 并不是随每一个元素的插入而增长自己, 而是当vector 需要增长自身时, 它实际分配的空间比当前所需的空间要多一些。2 为了定义一个容器对象 我们必须先包含相关联的头文件 应该是下列头文件之一 #include #include #include #include #include 容器对象的定义以容器类型的名字开始, 后面是所包含的元素的实... 阅读全文
摘要:
这一章的内容与C语言的内容差别不大,先前比较熟悉。只是在写最后一节ilist类的代码是,inline的用法遇到了一些问题。于是各处寻求标准,最后决定相信CSDN上wanzhanhang一篇博文的内容。如下:inline函数(摘自C++ Primer的第三版)(一)在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联。 inline int min(int fir... 阅读全文
摘要:
1 关于取余3.14 % 3; // 编译时刻错误: 浮点操作数21 % 6; // ok: 结果是 321 % 7; // ok: 结果是 021 % -5; // 机器相关: 结果为 -1 或 12 static_cast ( byte_value )称为显式类型转换 (explicit type conversion )或强制类型转换 (cast),强制转换使编译器把一... 阅读全文
摘要:
1 用wchar_t 类型处理宽字符,可以这样声明 whcar_t c = L'A'; 占四个字节。2 声明变量时同时初始化:(1)显式int ival = 1024; string project = "Fantasia 2000"; (2 )隐式int ival( 1024 ); string project( "Fantasia 2001" ); (3)每种内置数据类型都支持一种特殊的构造函... 阅读全文
摘要:
1 new 运算符的用法:分配一个整型 int *pint = new int (1024); (1024 是初始值)。分配一个整型数组 int *pia = new int [8]; (八个元素)。对应的delete语句: delete pint; delete [] pia;2 友元函数可以访问类private部分的成员。3 在类中定义的函数自动被当做是内联函数,也可以在外面用inl... 阅读全文
摘要:
1 c89 中没有布尔类型,C99中有,C++中有boolean. C++标准库还提供了string complex vector list 等扩展类型。2 注意使用预编译指令避免多次包含。还有注意用预编译#ifdef #ifndef等指令辅助调试,用gcc 的-D选项在编译时加入宏。#ifndef BOOKSTORE_H#define BOOKSTORE_H/* Bookstore.h 的内... 阅读全文