C++
文章平均质量分 62
zq301
这个作者很懒,什么都没留下…
展开
-
C++中基类和派生类的protcted成员的理解
看到《C++ primer》中文第4版的475页时,不懂protected成员的使用范围,特别是对这句: 派生类只能通过派生类对象访问其基类的protected成员,派生类对其基类类型对象的protected成员没有特殊访问权限。怎么读都觉得别扭,于是自己编程试了一下,可能对protected成员的使用情况未考虑周全,但是也能反映一些问题。代码的解释:基类为 shape,原创 2013-11-25 22:53:37 · 1297 阅读 · 0 评论 -
迭代器的算数运算
支持随机访问的迭代器才可以使用:iter+n,iter-n,iter-iter的操作。如vector。list和map这类不支持以上三种操作,因为它们不支持随机访问,因此它们只支持自增和自减操作。那么,要想计算list和map的两个iterator之间的距离怎么办?答案是使用distance()。distance的原型如下:std::distancetemplate原创 2015-05-07 20:37:56 · 2021 阅读 · 0 评论 -
C++顺序容器的capacity和reserve方法
verctor容器这样的顺序容器在内存的存储空间是连续的,而其后面的存储空间可能被其他数据占用,当在需要添加新的元素时,vector就需要重新分配存储空间以连续存储原来元素和新添加的元素。 为了使vector实现快速的内存分配,其实际分配的容量要比当前所需的空间多一点。vector容器的capacity和reserve方法使程序员可以与vectro容器的内存分配的实现部分交互工作。c原创 2015-05-07 20:39:37 · 1273 阅读 · 0 评论 -
c++11 内存模型解读
关于乱序首先需要明确一个普遍存在,但却未必人人都注意到的事实:程序并不总是按照源码中的顺序被执行的,此谓之乱序,乱序产生的原因可能有好几种:编译器出于优化的目的,在编译阶段将源码的顺序进行交换。程序执行期间,指令流水被 cpu 乱序执行。cache 的分层及刷新策略使得有时候某些写,读操作的顺序被重排。以上乱序现象虽然来源不同,但从源码的角度,对上层应用程序来说,他们的效果转载 2015-05-25 11:14:53 · 1736 阅读 · 0 评论 -
C++中的默认函数与default和delete用法
一、类中的默认函数 a.类中默认的成员函数 1.默认构造函数 2.默认析构函数 3.拷贝构造函数 4.拷贝赋值函数 5.移动构造函数 6.移动拷贝函数 b.类中自定义的操作符函数 1.operator 2.operator& 3.operator&& 4.operator* 5.operator转载 2015-05-25 08:36:16 · 1971 阅读 · 0 评论