#include <iostream>template <typename Derived>struct Base { Derived&self() { return static_cast<Derived&>(*this); } const Derived&self() const { return static_cast<const Derived&>(*this); }public: void start() { self().run(); }};class Derived : public Base<Derived> { friend Base<Derived>; void run() { std::cout << "Derived run()" << std::endl; }};父类调用子类, 不过不同的 Base<Derived> 是不同的类, 好像没什么用处
新闻热点
疑难解答