gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:12:23 25 4
gpt4 key购买 nike

我正在尝试编写一个异常类,以便于与行为类似于 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?
{
}
};

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

这个问题很困扰我,一直想不出解决办法...任何信息都会有很大的帮助...

最佳答案

如果您不需要在不支持它的旧编译器上编译您的代码,您可以使用 using 子句继承构造函数(不过,即将推出的 VC++11 将以这种方式被视为“旧”.. .)

或者你可以把实际的构造工作放在一个类似 vprintf 的函数中,让构造函数调用它。

关于c++ - 如何继承构造函数,或者如何调用参数数量未知的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10220859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com