相关疑难解决方法(0)

什么是奇怪的重复模板模式(CRTP)?

没有参考书,任何人都可以CRTP用代码示例提供一个很好的解释吗?

c++ templates c++-faq crtp

173
推荐指数
5
解决办法
4万
查看次数

使用模板继承和转换不按预期工作

我一直在玩模板和继承,但是在对基类执行强制转换时,使用带有模板参数的虚函数成员有一些奇怪之处.他们似乎使用"直接继承",但如果我稍后"推迟"继承,则不行.

一些代码来说明:

示例[1]

struct CastExBase
  {
  virtual void f() {}
  };

template<class RT>
struct CastExA : CastExBase
  {
  void f() {std::cout << "CastExA" << std::endl;}
  virtual void g() {std::cout << "g - A" << std::endl;}
  virtual RT h() {std::cout << "h - A" << std::endl;}
  };

struct CastExB
  {
  void execF() {std::cout << "CastExB" << std::endl;}
  void g() {std::cout << "g - B" << std::endl;}
  int h() {std::cout << "h - B" << std::endl;}
  };

struct CastExC :
    public CastExA<int>, …
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism inheritance templates casting

4
推荐指数
1
解决办法
97
查看次数

标签 统计

c++ ×2

templates ×2

c++-faq ×1

casting ×1

crtp ×1

inheritance ×1

polymorphism ×1