学习
yueguohai
这个作者很懒,什么都没留下…
展开
-
函数的引用返回左值
调用一个返回引用的函数得到左值,其他返回类型得到右值.可以像使用其他左值来使用返回引用的函数的调用,特别是我们能为返回类型时非常量引用的函数的结果赋值:char &get_val(srting &str, string::size_type ix) { return str[ix]; } int main() { string s("a string"); cout << s原创 2017-02-24 15:06:03 · 1636 阅读 · 0 评论 -
const成员函数
默认情况下,this的类型是指向类类型非常量版本的常量指针(例如sale_data * const xxx),,这就意味着我们不能吧this绑定到常量对象上,这也使得我们不能在一个常量对象上调用普通的成员函数。把this声明称const sale_data * const xxx,有助于提高函数的灵活性。原创 2017-02-24 16:44:39 · 231 阅读 · 0 评论 -
关于友元
我们知道了private和public成员之后,private部分被隐藏了,被封装了,private部分可以被类的成员函数访问,但是如果是类外的成员函数该怎么办呢? 这时候就该友元上场了,用friend来修饰,也就是我是一个朋友,既然是朋友,自然可以来访问朋友的私有成员(private)了。 要注意的是友元没有传递性也没有继承性(朋友的朋友不一定是朋友,儿子的朋友也不一定是父亲的朋友啊) 类之间的友原创 2017-02-24 17:08:23 · 166 阅读 · 0 评论 -
关于构造函数的小结(学习中)
构造函数的名字和类名相同,没有返回类型,不能被声明为const的。当我们创建类的一个const对象时,直到构造函数完成初始化过程,对象才能真正取得其“常量属性”。因此构造函数在const对象的构造过程中可以向其写值。 某些类不能依赖于合成的默认构造函数: ①编译器只有在发现类不包含任何构造函数的情况下才会替我们生成一个默认构造函数。 ②对于某些类来说,合成的默认构造函数可能执行错误的操作。(可能会使原创 2017-02-24 16:36:54 · 229 阅读 · 0 评论 -
关于static(持续跟进中)
在函数中的局部静态变量 局部静态变量在程序执行路径第一次经过对象定义时初始化,并且直到程序终止时才被销毁,在此期间即使对象所在的函数执行结束也不会对它有影响。原创 2017-02-24 14:59:09 · 239 阅读 · 0 评论 -
顺序容器小记
vector:可变大小数组。支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢。 deque:双端队列。支持快速随机访问。在头尾位置插入/删除速度很快。 string:与vector相似的容器,但专门用于保存字符。随机访问快。在尾部插入/删除速度快。 list:双向链表。只支持双向顺序访问。在list中任何位置进行插入/删除操作速度都很快。 forward——list:单向链表。只支持原创 2017-02-25 11:18:54 · 250 阅读 · 0 评论 -
可调用对象
先记一下,以后补充,免得忘记函数: 函数指针: 重载了函数调用运算符的类: lambda表达式原创 2017-02-26 20:37:12 · 219 阅读 · 0 评论 -
关联容器小记
关联容器跟顺序容器有着根本上的不同:关联容器按照关键字来保存和访问。 按关键字有序保存元素: map:关联数组;保存关键字-值对(pair) set:关键值就是值,也就是说只保存关键字的容器 multimap:关键字可以重复出现的map multiset:关键字可以重复出现的set 无序集合: unordered_map:用哈希函数组织的map unordered_set: uno原创 2017-07-28 16:09:39 · 162 阅读 · 0 评论 -
无聊而已
Scanf_s在对字符串输入时的用法示例:scanf_s("%s", fname,sizeof(fname)); 有时间就看看 Code:The Hidden Language of Computer Hardware and Software (《编码的奥秘》) Computer System: A Programmer’s Perspective (《深入理解计原创 2018-01-02 21:24:06 · 188 阅读 · 0 评论