15.31 (a)创建了12个对象,分别是3个WordQuery,1个AndQuery,1个OrQuery,1个NotQuery,以及这6个对象对应的Query,共计12个;(b)与a相同;(c)14个对象,4个WordQuery,2个AndQuery,1个OrQuery,以及这7个对象对应的Query对象,共14个。
15.32 当Query对象被拷贝,移动,赋值或销毁时,执行默认操作,即调用shared_ptr对应的控制成员。
15.33 Query_base没有自己的数据成员,进行这些操作时都执行默认语义,什么都不做。
15.34 (a)表达式:Query q = Query("fiery") & Query("bird") | Query("wind"); 执行的构造函数依次为: WordQuery
Query(string 参数)
WordQuery
Query(string 参数)
WordQuery
Query(string 参数)
BinaryQurey
AndQuery
Query(shared_ptr参数)
BinaryQurey
OrQuery
Query(shared_ptr参数)