博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年9月26日

摘要: 1. 实现技术的挑战:要找到一个足够有效的方法,将istream和ostream各自维护一个ios subobject,折叠成为一个由iostream维护的单一ios subobject,并且还可以保存base class和derived class的指针之间的多态指定操作。2. 一种实现方法:class如果内含一个或多个virtual base class subobject,像istream那样,将被分割为两部分:一个不变局部和一个共享局部。不变局部中的数据,不管后继如何衍化,总是拥有固定的offset,所以这部分数据可以被直接存取。至于共享局部,所表现的就是virtual base cl 阅读全文

posted @ 2012-09-26 22:31 神の大司命 阅读(245) 评论(0) 推荐(0)

摘要: 1. 示例程序1: 1 class A 2 { 3 public: 4 void f(); 5 protected: 6 private: 7 }; 8 9 class B : virtual public A10 {11 public:12 protected:13 private:14 };15 16 class C : virtual public A17 {18 public:19 protected:20 private:21 };22 23 class D : public B, public C24 {25 public:26 protected:27 private:... 阅读全文

posted @ 2012-09-26 16:47 神の大司命 阅读(195) 评论(0) 推荐(0)

摘要: 1. 在混合类型的算数表达式中:int ival = 3;double dval = 3.14;// 最宽的数据类型成为目标转换类型,ival被提升为double类型3.0ival + dval; 2. 用一种类型的表达式赋值给另一种类型的对象:// 目标转换类型是被赋值对象的类型ival = dval;3. 把一个表达式传递给一个函数,表达式类型与形式参数类型不相同:// 目标转换类型是形式参数的类型extern double sqrt(double);sqrt(2); // 2被提升为double类类型2.04. 从一个函数返回一个表达式的类型与返回类型不相同:// 返回表达式类型自动转换 阅读全文

posted @ 2012-09-26 14:38 神の大司命 阅读(733) 评论(0) 推荐(0)

摘要: 1. 时间复杂度:一种非形式化论证:快速排序在每层递归中都执行了O(n)次操作,而总计有O(logn)层递归。因此,时间复杂度为:O(nlogn)更精确的论证:通过递推关系。若用T(n)表示解决规模为n的问题所需的时间,那么T(1) = O(1),且T(n) = 2T(n/2) + O(n),因此,T(n) = O(nlogn)2. 空间复杂度:快速排序在每层递归中需要栈空间O(1),而总计有O(logn)层递归。因此,空间复杂度为:O(logn) 阅读全文

posted @ 2012-09-26 14:37 神の大司命 阅读(210) 评论(0) 推荐(0)