Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 带c++;具有继承的模板_C++_Templates_Inheritance - Fatal编程技术网

C++ 带c++;具有继承的模板

C++ 带c++;具有继承的模板,c++,templates,inheritance,C++,Templates,Inheritance,我们已经使用泛型/模板类为我们的库实现了请求生成器/变体。我们在名为CreateBuilder的模板类中定义了公共生成器函数,函数的示例定义如下 模板 类CreateBuilder{ TBuilder和setNonce(常量字符串和nonce){ nonce=nonce; 记录器_uu.setNonce(nonce); 返回静态_cast(*此); } TBuilder&build(){ 返回静态_cast(*此); } } 我们希望创建一个实现此基本生成器的生成器层次结构 class ABu

我们已经使用泛型/模板类为我们的库实现了请求生成器/变体。我们在名为CreateBuilder的模板类中定义了公共生成器函数,函数的示例定义如下

模板
类CreateBuilder{
TBuilder和setNonce(常量字符串和nonce){
nonce=nonce;
记录器_uu.setNonce(nonce);
返回静态_cast(*此);
}
TBuilder&build(){
返回静态_cast(*此);
}
}
我们希望创建一个实现此基本生成器的生成器层次结构

class ABuilder : public CreateBuilder<ABuilder>  {
 ABuilder& setSomething(const string& something) {
   return *this;
 }
}
对于BBuilder实例,我不能再进行这种链接了,BBuilder().setNonce(“a”).setance(“b”),因为基本生成器对Abilder进行静态_转换。
解决这个问题的模式是什么?我可以想到的一种方法是创建模板类的层次结构,并且模板专用类将始终是叶类?

ABuilder
中,它看起来像
CreateBuilder
使用了CRTP,但您的
CreateBuilder
类看起来不像(除非
TBuilder
是CRTP参数,但我们无法确定)。您应该为我们提供适当的MCVE。我无法遵循您的代码示例。“扩展”不是C++。你的CreateBuilder通过铸造返回一个TBuudRead,但是它不是从TBuilder中派生出来的。这是不可能的。所以我不知道你在做什么。这有帮助吗?PARKTROMAMI谢谢你修复语法。看起来我需要创建模板类的层次结构,而实现只是叶子类。
class BBuilder : public ABuilder  {
  BBuilder& setAnother(const string& another) {
    return *this;
  }
}