当前位置: 代码迷 >> 综合 >> C++备忘录031:method chaining by CRTP
  详细解决方案

C++备忘录031:method chaining by CRTP

热度:76   发布时间:2023-09-05 18:28:03.0

避免动态继承时,基类返回的是基类对象,在此之后无法调用继承类方法的问题

BTW,在此情况下,基类和继承类接口不同,是否应该用is-a的继承关系值得斟酌

#include <iostream>template <typename T>
struct Base {T &foo() {std::cout << "foo\n";return static_cast<T &>(*this);}
};struct D1 : Base<D1> {D1 &bar() {std::cout << "bar\n";return *this;}
};int main() {D1{}.foo().bar();
}
  相关解决方案