在默认情况下(用户没有定义,但是也没有显式的删除),编译器会自动的隐式生成一个拷贝构造函数和赋值运算符。但用户可以使用delete来指定不生成拷贝构造函数和赋值运算符,这样的对象就不能通过值传递,也不能进行赋值运算。
    Event(const Event &) = delete;
    Event &operator=(const Event &) = delete;
    该函数定义成已删除的函数,任何试图调用它的行为将产生编译期错误。是C++11标准的内容。
    删除复制构造函数,这个复制构造函数不能用了。
    与android 中的DISALLOW_EVIL_CONSTRUCTORS 有类似的作用。
    #define DISALLOW_EVIL_CONSTRUCTORS(name) \
    name(const name &); \
    name &operator=(const name &);
    这些方法很容易导致内存泄漏以及其他灾难,因为它们在你可能想不到的“幕后”地方运行。
    牵扯出深拷贝和浅拷贝的问题。