I am using double pointer member in base class. but in derived class constructor I am getting error
error: no matching function for call to ‘Layer::Layer(tensor&, float&)’ :Layer(**tn, **input)
// base class
class Layer
{
    protected:
        struct tensor **tensor_node;
        float **tensor_input_activation;
    public:
        /*  ***Constructor*** */
        Layer(struct tensor **, float **);
};
Layer::Layer(struct tensor **tn, float **input)
{
    *tensor_node = *tn;
    *tensor_input_activation = *input;
}
// derived class from Layer
class BatchNormalization : public Layer
{
    string layer_name;
    public:
        /* ***Constructor*** */
        BatchNormalization(struct tensor **, float **, string);
        /* ***Member_function*** */
        float* batch_normalization_operation_function();
};
BatchNormalization::BatchNormalization(struct tensor **tn, float **input, string l_name)
                    :Layer(**tn, **input)
{
    layer_name = l_name;
}
How can resolve this problem? How can we define constructors if the base class contains double-pointer member?
 
     
    