上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 41 下一页
摘要: STL包含很多处理容器的非成员函数: sort() copy() find() random_shuffle() set_union() set_intersection() set_difference() transform() 它们的总体设计是相同的,都使用迭代器来标识要处理的数据区间和结果的 阅读全文
posted @ 2019-03-07 19:16 Grooovvve 阅读(283) 评论(0) 推荐(0)
摘要: 函数对象也叫做函数符(functor)。 函数符是可以以函数方式和( )结合使用的任意对象。 包括函数名,指向函数的指针,重载了()运算符的类对象。 可以这样定义一个类: class Linear { private: double slope; double y0; public: Linear( 阅读全文
posted @ 2019-03-03 21:35 Grooovvve 阅读(328) 评论(0) 推荐(0)
摘要: 有了之前使用STL的经验后,接下来讨论泛型编程及其底层的理念; 首先我们知道STL只是泛型编程的一种; 而面向对象的编程方式关注的是编程的数据方面; 而泛型编程关注的是算法; 但是,他们之间的一个重要共同点是:创建可重用的代码;但是理念却完全不一样。 接下来讨论泛型编程的理念: 这种编程方式旨在编写 阅读全文
posted @ 2019-03-03 21:34 Grooovvve 阅读(414) 评论(0) 推荐(0)
摘要: 标准模板库的英文缩写是STL,即Standard Template Library。 STL里面有什么呢? 它提供了一组表示容器、迭代器、函数对象和算法的模板。 容器是一个与数组类似的单元,可以存储若干值。 STL容器是同质的,即存储的值的类型相同。 算法是完成特定任务的处方(例如对数组进行排序或在 阅读全文
posted @ 2019-03-03 21:33 Grooovvve 阅读(392) 评论(0) 推荐(0)
摘要: 这部分属于C++的新特性,感觉比较高阶的特性。我把它归于属于奇技淫巧的范畴。了解即可。 RTTI是运行阶段类型识别(Runtime Type Identification)的简称。 这是添加到C++中的新特性。 很多老式的编译器不支持它,或者可能包含开关RTTI的编译器设置。 RTTI旨在位程序在运 阅读全文
posted @ 2019-03-02 00:04 Grooovvve 阅读(278) 评论(0) 推荐(0)
摘要: C++的创始人认为C语言的类型转换运算符太过于松散。他采取了更加严格的限制允许的类型转换。并添加了4个类型转换运算符。 这部分特性比较高阶,我把它归于奇技淫巧的范畴。这里简单介绍一下,以后实际有用到再深入研究。 struct Data { double data[200]; }; struct Ju 阅读全文
posted @ 2019-03-02 00:04 Grooovvve 阅读(333) 评论(0) 推荐(0)
摘要: 一、先讨论异常被引发后,可能导致的问题 意外异常: 如果它是在带异常规范的函数中引发的,则必须与规范列表中的某种异常匹配,否则为意外异常。在默认情况下,这将导致程序异常终止(虽然C++11摒弃了异常规范,但仍支持它,且有些现有的代码使用了它)。 未捕获异常: 如果异常不是在函数中引发的,则必须捕获它 阅读全文
posted @ 2019-02-26 09:01 Grooovvve 阅读(385) 评论(0) 推荐(0)
摘要: 异常、类和继承以三种方式相互关联。 首先,可以像标准C++库所做的那样,从一个异常类派生出另一个。 其次,可以在类定义中嵌套异常类声明来组合异常。 第三,这种嵌套声明本身可以被继承,还可以作为基类。 接下来用一个例子进行相关的探索; 以下这个头文件声明了一个Sales类,它用于存储一个年份以及一个包 阅读全文
posted @ 2019-02-26 09:00 Grooovvve 阅读(212) 评论(0) 推荐(0)
摘要: C++异常的主要目的是为了设计容错程序提供语言级支持。 即异常使得在程序设计中包含错误处理功能更加容易,以免事后采取一些严格的错误处理方式。 异常的灵活性和相对方便性激励着程序员在条件允许的情况下在程序设计中加入错误处理功能。 总之,异常是这样一种特性,类似于类,可以改变你的编程方式。 较新的C++ 阅读全文
posted @ 2019-02-26 08:59 Grooovvve 阅读(487) 评论(0) 推荐(0)
摘要: 虽然throw-catch机制类似于函数参数和函数返回机制,但是还是有些不同之处。 其中之一是函数fun()中的返回语句将控制权返回到调用fun()的函数A中, 但throw语句将控制权向上返回到第一个这样的函数:包含能够捕获相应异常的try-catch组合。 另一个不同之处是,引发异常时,编译器总 阅读全文
posted @ 2019-02-26 08:58 Grooovvve 阅读(192) 评论(0) 推荐(0)
上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 41 下一页