AFAIK, you cannot remove the inherited constructor.
The problem in your example comes from the wrong class design. The constructor is usually used to allocate class resources, set default values, etc. This is not quite suitable for outputting anything.
You have to put
n() { cout << "daughter" << endl; }
Into a virtual function.
In general, if you need to remove an inherited constructor, you probably need to rethink / redesign the class hierarchy.
source
share