含有可变形参的函数:fun(parm_list, ...)与省略符对应的实参暂停类型检查。
返回值为viod的函数只能使用return;不能return expression。return;也只能用于返回值为void的函数。
静态变量只在初次调用时初始化,static size_t ctr=0只执行一次。
内联函数避免函数调用的开销:编译时展开为函数体中的表达式,免去函数调用的寄存器保存恢复、复制实参跳转等。
内联函数定义在头文件。编译器将类内定义的成员函数当做内联函数。
每个成员函数都有一个隐含的this指针。假设有成员函数bool same_isbn(..) const 最后的const改变了隐含的this形参的类型,这种成员函数叫常量成员函数,无法修改对象本身。const的对象,指针引用只能调用常量成员函数。
没有前缀的成员都被假定为this在调用。
默认构造函数按变量初始化规则初始化类中所有成员【内置类型作为局部变量时不初始化】。
指向函数的指针:函数类型由返回值和形参决定,与函数名无关。函数名本身就是指针。fun==&fun Fcn pf=add pf(1,2)==(*pf)(1,2)
函数的形参可以是指向函数的指针:FUN( bool(string&, string&) ) 或 FUN( bool (*)(string&, string&) )。FUN是函数名,FUN(这里都是形参)
iostream定义读写控制窗口的类;fstream定义读写已命名文件的类;sstream定义的类型用于读写内存中的string对象。前面加上w支持wchar_t类型。
流的状态可以由bad,fail,eof,good函数获得,cin.fail()。
每一个流都关联一个缓冲区,崩溃的程序不会自动刷新缓冲区,如果用输出调试程序,确保每次输出都flush或endl。tie函数可将istream和ostream绑一起,输入前首先会刷新输出。
fstream 既要定义对象又要捆绑文件【open或初始化时】。如果想用一个文件流对象读取多个文件,必须close()并clear()。所有流都可以用<<操作符。
设置或清除多个二进制位状态:可以多次调用setstate,clear;可以用位或操作符在一次调用中传递多个状态的值。A|B生成了一个值,其对应于A和B的位都打开了,设置为1,其他都是0.
引用不支持一般意义的赋值运算,没有容器的元素是引用。容器的容器< <之间必须有空格否则会被认为是<<移位操作符。
vector deque支持通过元素的位置实现随机访问,所以迭代器可以实现算术和关系运算。list容器的迭代器不支持算术运算(加减法iter+n,iter1+iter2),也不支持关系运算(<= < >= >【是元素的比较,类似于string】),只支持++ -- == !=。
由容器定义的类型:size_type iterator value_type reference...
list deque提供了push_front()。容器元素都是副本。insert push可能导致迭代器失效,当编写循环将元素插入到vector deque时,必须更新迭代器。size()返回个数,empty()返回布尔值。
如果容器c为空,c.front() c.back()操作未定义!c[n]和c.at(n)只适用于vector deque,n<0或n>=c.size()操作未定义【c.at(n)会抛out_of_range】。
C++primer学习笔记(三)
原创mb5ff98246f093d ©著作权
©著作权归作者所有:来自51CTO博客作者mb5ff98246f093d的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:C++primer学习笔记(四)
下一篇:Anaconda安装和使用

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【CAD建模号】学习笔记(三):图形绘制区1
本期学习笔记介绍【CAD建模号】中图形绘制区的二维工具、面建模、实体工具和文本工具。
角点 二维 图形绘制 CAD建模号 模宗 -
《C++primer》读书笔记二
13章.复制控制复制构造函数。赋值操作符和析构函数总称为复制控制。编译器自动实现这
操作符 操作数 复制构造函数 -
《C++primer》读书笔记四
模板参数的名字,在它被声明为模板参数后,一直到模板声明或定义
类模板 实例化 类型参数