gpt4 book ai didi

c++ - 如何避免在父构造函数更改时更改每个子构造函数

转载 作者:行者123 更新时间:2023-11-30 03:42:23 25 4
gpt4 key购买 nike

假设我有以下 (C++)

class Parent
{
Parent(Foo f){};
}

class Child : public Parent
{
Child(Foo f, Bar b)
: Parent(f)
{};
}
...
// And a whole bunch of other children, all calling Parent constructor

假设现在我需要向父构造函数添加一个新参数

Parent(Foo f, Baz z){};

然后我必须将每个子类更改为以下内容

Child(Foo f, Baz z, Bar b)
: Parent(f, z)
{};

有什么办法可以避免更改每个子类?

猜测可能与此有关, how to avoid repetitive constructor in children这表明我必须更改每个子类。

如果是这样,是否有任何语言/设计模式可以减轻这种变化的痛苦?

最佳答案

如果父类构造函数的新参数强制那么真的别无选择,您必须更新子类构造函数。

但如果新参数不是是强制性的,只需添加新的父构造函数作为重载构造函数,或者为新参数使用默认值。

关于c++ - 如何避免在父构造函数更改时更改每个子构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36832616/

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