Если вы определите параметризованный конструктор в CBase
, то не будет конструктором по умолчанию .Вам не нужно делать ничего особенного.
Если вы хотите, чтобы все производные классы CAbstract
реализовали параметризованный конструктор, это не то, что вы можете (чисто) выполнить.Производные типы могут свободно предоставлять свои собственные члены, включая перегрузки конструктора.
Единственное, что требуется из них, это то, что если CAbstract
предоставляет только параметризованный конструктор, конструкторы производных типовдолжен вызвать его напрямую.
class CDerived : CAbstract
{
public CDerived() : base("some default argument") { }
public CDerived(string arg) : base(arg) { }
}