Use private inheritance + "using"

... instead of public inheritance.
Change the way of using "using"
Use nullptr in pointer comparison