January 2019
Intermediate to advanced
512 pages
14h 5m
English
When applied to class hierarchies, method chaining runs into a particular problem; let's say that our sort() method returns a sorted data collection that is an object of a different type, SortedCollection , which is derived from the Collection class. The reason it is a derived class is that after sorting we can support efficient search, and so the SortedCollection class has a search() method that the base class does not have. We can still use method chaining, and even call the base class methods on the derived class, but doing so breaks the chain:
class SortedCollection;class Collection { public: Collection filter(); SortedCollection sort(); // Converts Collection to SortedCollection};class SortedCollection ...