c++ how to inherit from a template class

template <typename T>
class BaseTemplate {
public:
    BaseTemplate(T value) : data(value) {}

    void print() {
        std::cout << "BaseTemplate: " << data << std::endl;
    }

private:
    T data;
};

template <typename U>
class DerivedTemplate : public BaseTemplate<U> {
public:
    DerivedTemplate(U value, U additionalValue)
        : BaseTemplate<U>(value), additionalData(additionalValue) {}

    void printDerived() {
        std::cout << "DerivedTemplate: " << this->getValue() << " Additional: " << additionalData << std::endl;
    }

private:
    U additionalData;
};

int main() {
    DerivedTemplate<int> derivedInstance(42, 100);
    derivedInstance.print();       // Accessing base class function
    derivedInstance.printDerived(); // Accessing derived class function

    return 0;
}