c++基于对象的编程风格2
2017-02-12 15:36
274 查看
知识点:
1.iterator的定义
前置版本返回的对象的引用,目的是提高效率,此函数通俗讲就是直接加返回的就是+1完成的对象
++的后置版本返回的是一个临时的对象,(个人理解还请纠正)这个临时对象的生命周期应该是此后置++函数的上一层函数的执行时间,上层函数执行完这个临时对象就删除。函数中新建的一个Triangular_iterator 类型的tmp对象,此对象的目的就是保存+1之前的状态留给上层函数使用,即上层函数使用的是未加1的临时对象,实际的对象已经+1。
2.友元为了能通过编译,友元必须要先于对应class之前定义
3.function object 是某种class的实例对象,只是对其function call(应该就是小括号)进行行了重载这样这个对象就可以当做函数来使用了,这种方法比通过函数指针调用函数要高效。
1.iterator的定义
inline Triangular_iterator& Triangular_iterator:: operator++() { // prefix instance ++_index; check_integrity(); return *this; }
前置版本返回的对象的引用,目的是提高效率,此函数通俗讲就是直接加返回的就是+1完成的对象
inline Triangular_iterator Triangular_iterator:: operator++( int ) { // postfix instance Triangular_iterator tmp = *this; ++_index; check_integrity(); return tmp; }
++的后置版本返回的是一个临时的对象,(个人理解还请纠正)这个临时对象的生命周期应该是此后置++函数的上一层函数的执行时间,上层函数执行完这个临时对象就删除。函数中新建的一个Triangular_iterator 类型的tmp对象,此对象的目的就是保存+1之前的状态留给上层函数使用,即上层函数使用的是未加1的临时对象,实际的对象已经+1。
2.友元为了能通过编译,友元必须要先于对应class之前定义
3.function object 是某种class的实例对象,只是对其function call(应该就是小括号)进行行了重载这样这个对象就可以当做函数来使用了,这种方法比通过函数指针调用函数要高效。
class LessThan { public: LessThan( int val ) : _val( val ){} int comp_val() const { return _val; } void comp_val( int nval ){ _val = nval; } bool operator()( int value ) const; private: int _val; };
相关文章推荐
- C++服务器开发之基于对象的编程风格
- C++服务器开发之基于对象的编程风格
- C++服务器开发之基于对象的编程风格
- c++基于对象的编程风格
- muduo2 面向对象编程风格 VS 基于对象编程风格(boost::bind/function)
- 第四章 基于对象的编程风格(如何实现一个class)
- 《Essential C++》笔记五、基于对象的编程风格
- 面向对象编程风格 VS 基于对象编程风格(boost::bind/function)
- 面向对象编程风格 & 基于对象编程(boost::bind/function)
- 第四章 基于对象的编程风格(什么是this指针)
- C++中提供了多种基本的数据类型。实际上,这些远不能满足我们的需求,如复数(第10章的例子大多是处理虚数的),再如分数。本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,
- 面向对象编程风格&基于对象编程风格
- Essential C++中文版(Chap4:基于对象的编程风格)
- 第四章 基于对象的编程风格(打造一个iterator class)
- C++第5周任务【任务2】本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,二则也为第10章做运算符重载等积累些感性认识。
- muduo网络库学习笔记(0):面向对象编程风格和基于对象编程风格的比较
- Essential C++笔记(基于对象的编程风格)
- 面向对象编程风格 VS 基于对象编程风格(boost::bind/function)
- 第四章 基于对象的编程风格(什么是构造函数和析构函数)
- 第四章 基于对象的编程风格何谓mutable(可变)和const(不可变)