class GraphKernel { public: virtual double Evaluate(const Graph &g0, const Graph &g1) const = 0; }; class RootedGraphKernel; class GraphKernelAllRootPairs : public GraphKernel { public: void SetParameters(RootedGraphKernel &rootedGraphKernel); double Evaluate(const Graph &g0, const Graph &g1) const; private: RootedGraphKernel *_rootedGraphKernel; };