c – 如何继承构造函数,或者如何调用具有未知数量参数的构造函数?

我正在尝试编写一个方便使用的构造函数类似于printf的异常类,例如:

class ExcBase
{
    ExcBase(const char *fmt, ...)
    {
        // call things like vsprintf
    }
};

但是在c中似乎没有构造的继承,所以我想编写一个继承的类,如:

class ExcChild : public ExcBase
{
    ExcChild(const char *fmt, ...)
       : ExcBase(fmt, ...) // XXX: how to pass the trailing parameters to the constructor?
    {
    }
};

或者我将不得不为所有子类编写相同的构造函数,这太烦人了……

这个问题困扰了我很多,我无法找到解决这个问题的方法……
任何信息都将是一个很大的帮助……

最佳答案 如果将复杂的工作分离为带有va_list参数的函数,则应该能够从每个子构造函数(对于每个子类型仍然必须实现)中调用它.然后你的重复代码(每个类)只是声明va_list,然后调用va_start,你的新(基本)函数和va_end.这样做有
a post here on SO个.

点赞