Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/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++_Oop - Fatal编程技术网

C++ 如果基类包含双指针成员,则派生类的构造函数

C++ 如果基类包含双指针成员,则派生类的构造函数,c++,oop,C++,Oop,我在基类中使用双指针成员。但在派生类构造函数中,我得到了一个错误 错误:调用“Layer::Layer(tensor&,float&)”时没有匹配的函数 :层(**tn,**输入) 如何解决这个问题?如果基类包含双指针成员,我们如何定义构造函数?您通过层(tn,input)。但在此之前,您应该修复Layer::Layer,以停止对无效指针的解引用 Layer::Layer(tensor **tn, float **input) : tensor_node(tn), tensor_input

我在基类中使用双指针成员。但在派生类构造函数中,我得到了一个错误

错误:调用“Layer::Layer(tensor&,float&)”时没有匹配的函数 :层(**tn,**输入)

如何解决这个问题?如果基类包含双指针成员,我们如何定义构造函数?

您通过
层(tn,input)
。但在此之前,您应该修复
Layer::Layer
,以停止对无效指针的解引用

Layer::Layer(tensor **tn, float **input)
   : tensor_node(tn), tensor_input_activation(input)
{}

BatchNormalization::BatchNormalization(tensor **tn, float **input, string l_name)
   : Layer(tn, input), layer_name(l_name)
{}

请提供一个示例。您是否尝试只传入tn、input?看起来您使用的指针是完全错误的。
Layer()
构造函数正在做的事情非常麻烦。如果你相信这就是它所做的,它不会改变
tensor\u节点
tensor\u输入激活
,struct不是一个类型名,而是
BatchNormalization::BatchNormalization(struct tensor**tn,float**input,string l\u name):Layer(**tn,**input)中初始化列表中的关键字
您需要删除基类初始化器中多余的星号,以给出
BatchNormalization::BatchNormalization(结构张量**tn,浮点**输入,字符串l_名称):层(tn,输入)
。投票结束,因为这本质上是一个打字错误(尽管是由于没有正确理解指针取消引用的作用)。
Layer::Layer(tensor **tn, float **input)
   : tensor_node(tn), tensor_input_activation(input)
{}

BatchNormalization::BatchNormalization(tensor **tn, float **input, string l_name)
   : Layer(tn, input), layer_name(l_name)
{}