从零单排c++ primer(7)

(1)如果成员是const、引用,或者属于某种未提供默认构造函数的类类型,我们必须通过构造函数初始化值列表为这些成员提供初值。
(2)最好令构造函数初始值的顺序与成员声明的顺序保持一致,而且如果可能的话,尽量避免使用某些成员初始化其他成员。
(3)如果一个构造函数为所有的参数都提供了默认实参,则它实际上也定义了默认构造函数,
(4)如果定义了其他构造函数,最好也提供一个默认构造函数。
(5)聚合类:1.所有成员都是public的2.没有定义任何构造函数3.没有类内初始值4.没有基类也没有virtual函数。
(6)数据成员都是字面值类型的聚合类是字面值常量类。
(7)静态成员函数不能声明成const的,而且不能在static函数体内使用this指针。
(8)和类的所有成员一样,当指向类外部的静态成员时,必须指明成员所属的类名,static关键字则只出现在类内部的声明语句中。
(9)要想确保对象只定义一次,最好的办法就是把静态数据成员的定义与其他非内联函数的定义放在同一个文件中。
(10)即使一个常量静态数据成员在类内部被初始化了,通常情况下也应该在类的外部定义一下该成员。 
(11)每一个输出流都管理一个缓冲区,用来保存程序读写的数据。
(12)如果程序异常终止,输出缓冲区是不会被刷新的。
(13)交互式系统通常应该关联输入流和输出流。这意味着所有输出,包括用户提示信息,都会在读操作之前被打印出来。
(14)每个流最多关联到一个流,但多个流可以同时关联到同一个ostream。、
(15)当一个fstream对象被销毁时,close会自动被调用。
(16)保留被打开ofstream打开的文件中已有的数据的唯一方法是显式指定app或in模式。
(18)一个容器就是一些特定类型对象的集合、
(19)顺序容器:1.vector可变大小数组。2.deque双端队列。3.list双向链表。4.forward_list单向链表5.array固定数组6.string字符容器。
(20)除非你有很好的理由选择其他容器,否则应该使用vector。
(21)当不需要写访问时,应使用cbegin和cend。
(22)当将一个容器初始化为另一个容器的拷贝时,两个容器的容器类型和元素类型都必须相同。
(23)只有顺序容器的构造函数才接受大小参数,关联容器并不支持。
(24)标准库array允许赋值。
(25)赋值相关运算会导致指向左边容器内部的迭代器、引用和指针失效。
(26)由于其旧元素被替换,因此传递给assign的迭代器不能指向调用assign的容器。
(27)除 array外,交换两个容器内容的操作保证会很快,元素本身并未交换,swap只是交换了两个容器的数据结构。
(28)只有当气元素类型也定义了相应的比较运算符时,才可以使用关系运算符来比较两个容器。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值