5. 对定制的 "类型转换函数" 保持警觉 允许编译器执行隐式类型转换,害处多过好处,不要提供转换函数,除非你确定需要. class foo { foo(int a = 0, int b = 1); operator double() const; ... }: foo test(1, 2); double d = 0.5 * test; // 编译器会调用double进行隐式转换 上述类型隐式转换可能导致错误(非预期)的函数被调用.解决方法 1.类似于C++ string 一样,添加…
条款04:确定对象使用前已先被初始化 1.由于 c part of c++而且初始化可能导致运行期成本,那么就不保证发生初始化:例如arry是c part of c++的部分从而不能保证初始化,而STL的vector则可以保证初始化 2.由于规则复杂多变,故最佳处理办法就是:永远在使用对象之前将它初始化 3.由于C++规定对象成员的初始化动作发生在进入构造函数本体之前,故在构造函数中给定成员初值不是成员变量初始化,而是赋值动作.(C++类成员变量初始化发生于这些成员变量的default构造函数被…
条款05:了解C++默默编写并调用哪些函数 编译器默认声明一个default构造函数.一个copy构造函数.一个copy assignment操作符和一个析构函数.这些函数都是public且inline. class Empty { public: Empty() {...} Empty(const Empty& rhs) {...} ~Empty() {...} Empty& operator=(const Empty& rhs) {...} }; 如果你打算在一个内含refer…
一.创建String(字符串对象)的两种方式 1.String str1 = "nihao"("nihao"值存储在常量值中) 2.String str2 = new String("“nihao")(在堆内存中建立一个对象)   二.jvm 1.java虚拟机,用来解释并执行java程序的应用软件. 2.有两种方式给字符串对象分配内存: 1.将字符串常量存储在方法区中(String str1 = "nihao"),在内存中只…
一.数据类型 1.基本数据类型 a.数值型 1.整数:byte(1个字节=8位) min:-128 max:127 default:0 .short(2个字节=16位) min:-32768 max:32767 default:0 .int(4个字节) min:-2^31 max:2^31 -1 default:0 .long(8个字节) min:-2^63 max:2^63 -1 default:0 变量值需要用“l”结尾进行标识 2.小数:float(4个字节) default:0.0f  …
操作符是为了解决对Observable对象的变换的问题,操作符用于在Observable和最终的Subscriber之间修改Observable发出的事件 1.filter filter()操作符是可以对Observable流程的数据进行一层过滤处理,返回一个新的Observable,filter()返回为false的值将不会发出到Subscriber,我们来看下具体的代码 Observable.just(").filter(new Func1<String, Boolean>()…
参考:http://www.cnblogs.com/ronny/p/3740926.html 条款05:了解C++默默编写并调用哪些函数 如果自定义一个空类的话,会自动生成默认构造函数.拷贝构造函数.拷贝赋值函数.析构函数(再次感觉原文翻译的实在是太啰嗦了!). 当成员变量里有const对象或引用类型时,编译器会不能合成默认的拷贝赋值函数:当一个基类把它的拷贝赋值函数定义为private时,它的派生类 也不能生成默认的拷贝赋值函数,因为它无法完成基类成份的赋值. 条款06:若不想使用编译器自动生…
/************************************************************************/ /* C++条款二:用编译器替换预编译器 */ /************************************************************************/   #include <iostream> using namespace std;   class GamePlayer { private: st…
1. 仔细区分 pointers 和 references references和pointers的差别描述如下: pointer:当需要考虑"不指向任何对象"时,或者是考虑"在不同时间指向不同对象"的能力时,应该采用pointer.前一种情况可以将pointer设为null,后一种可以改变pointer所指对象. reference:当确定"总是会代表某个对象",而且"一旦代表了该对象就不能再改变",那应该使用referen…
概述 flask admin可以支持自定义视图,对于涉及到比较复杂的视图可以选择继承flask_admin.BaseView来定义自己期待的结构. 自定义的视图的每个函数可以使用flask_admin.expose 语法糖来装饰,从而可以定义自己期待接收的HTTP方法和对外的URL. flask admin的良好封装,使得自定义视图非常的方便. 自定义视图中少不了涉及各种表单操作,对于不是很习惯写前端的朋友来说肯定压力比较大.不过,懒人自有懒的办法,可以选择 wtforms package提供的…