c++11
文章平均质量分 84
cjaymj
这个作者很懒,什么都没留下…
展开
-
面向对象程序设计
面向对象三要素:数据抽象(封装)、继承、动态绑定(多态)数据抽象(封装)能帮助我们将对象的具体实现与对象所能执行的操作(接口)分离开来。继承使我们可以更容易地定义与其他类相似但不完全相同的新类。动态绑定(多态)让我们在使用这些彼此相似的类编写程序时,可以在一定程度上忽略掉它们的区别。一、继承基类和派生类通过继承构成一种层次关系。基类位于根部,它负责定义在层次关系中所有类共同原创 2015-07-31 00:26:19 · 415 阅读 · 0 评论 -
重载与类型转换
重载:定义类与类之间运算符所要完成的具体工作。类型转换:定义类与类、类与内置类型之间的转化规则。一、重载运算概述1、格式重载运算符本质上是具有特殊名字的函数:由关键字operator和其后要定义的运算符号共同组成。2、形参数目重载函数的形参数与其作用的运算对象数量一样多。但是若一个运算符函数是成员函数,则其第一个运算对象绑定到this指针上,因此其形参数比运算对象数少一个。原创 2015-06-05 10:01:37 · 1006 阅读 · 0 评论 -
泛型算法
algorithm头文件中定义了大多数算法。这些算法并不直接操作容器,而是遍历由两个迭代器指定的一个元素范围,对其中的每个元素进行一些处理。迭代器令算法不依赖于容器类型,但是算法依赖于元素类型的操作。大多数算法都使用了一个(或多个)元素类型上的操作,因此,除了默认操作符(==,)外,我们还可以使用自定义的操作来代替默认操作。原创 2015-05-15 16:56:19 · 449 阅读 · 1 评论 -
动态内存
1、C++中的三种内存a)、静态内存静态内存用来保存局部static对象、类static数据成员以及定义在任意函数之外的变量。这些对象由编译器自动创建和销毁。注意:静态内存中保存的对象会被赋予默认的初值。b)、栈内存栈内存用来保存定义在函数函数内的非static对象。这些对象由编译器自动创建和销毁。注意:栈内存中保存的对象不会被赋予默认的初值,其值是未定义的。c)、堆内原创 2015-05-15 09:09:10 · 395 阅读 · 0 评论 -
关联容器
1、初始化关联容器分为两类:map和set.map是关键字-值对;set只有关键字。map定义:map word_count = { {“Jon”,0},{"Lucy",1},{"Dicken",2} };该定义将string映射到size_t,也就是说string是下标,size_t是值。如:word_count[word];//返回下标为word的map容器的s原创 2015-05-13 10:49:22 · 414 阅读 · 0 评论 -
左值、右值、左值引用、右值引用
一、c++中的左值和右值误区:左值位于等号左边,右值位于等号右边。C++11中的定义:左值表达式表示的是一个对象的身份,而右值表达式表示的是对象的值。左值和右值都是针对表达式而言的,左值是持久的,右值是短暂的:左值在表达式结束后仍然存在,右值在表达式结束后会被销毁。区分左值和右值的方法:看能不能进行取地址操作,若能,则为左值,否则为右值。例子:若有如下定义:int a原创 2015-06-01 15:07:45 · 3927 阅读 · 1 评论