The TextQuery
class from § 12.3.2 (p. 487) defined a companion class named QueryResult
. The QueryResult
class is tightly coupled to our TextQuery
class. It would make little sense to use QueryResult
for any other purpose than to represent the results of a query
operation on a TextQuery
object. To reflect this tight coupling, we’ll make QueryResult
a member of TextQuery
.
class TextQuery {
public:
class QueryResult; // nested class to be defined later
// other members as in § 12.3.2 (p. 487)
};
We need to make only one change to our original TextQuery
class—we declare our intention to define QueryResult
as a nested class. Because QueryResult
is a type member (§ 7.4.1, p. 284), we must declare QueryResult
before we use it. In particular, we must declare QueryResult
before we use it as the return type for the query
member. The remaining members of our original class are unchanged.