练习18.11
为什么 what 函数不应该抛出异常?
what中如果抛出异常,需要try catch捕获,再调用what,一直循环,直达内存耗尽。
练习18.12
将你为之前各章练习编写的程序放置在各自的命名空间中。也就是说,命名空间chapter15包含Query程序的代码,命名空间chapter10包含TextQuery的代码;使用这种结构重新编译Query代码实例。
Query.h
#ifndef QUERY_H_
#define QUERY_H_
#include <string>
#include <iostream>
#include "Query_base.h"
#include "WordQuery.h"
#include "TextQuery.h"
namespace chapter15
{
class Query
{
friend Query operator~(const Query&);
friend Query operator|(const Query&, const Query&);
friend Query operator&(const Query&, const Query&);
public:
Query(const std::string&);
chapter10::Q