加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 07:30:07 所属栏目:百科 来源:网络整理
导读:我正在尝试编写一个方便使用的构造函数类似于printf的异常类,例如: class ExcBase{ ExcBase(const char *fmt,...) { // call things like vsprintf }}; 但是在c中似乎没有构造的继承,所以我想编写一个继承的类,如: class ExcChild : public ExcBase{ ExcCh
我正在尝试编写一个方便使用的构造函数类似于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个.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读