gpt4 book ai didi

c++ - 将继承的参数传递给基类构造函数,然后在派生类构造函数中做一些事情

转载 作者:行者123 更新时间:2023-12-01 14:12:47 24 4
gpt4 key购买 nike

考虑以下:
我派生了一个类 Child来自另一个类(class) Parent . Parent有大量重载的构造函数。 Child类不需要任何更多的构造参数。但是一旦调用了基类构造函数,我想在对象构造过程中做更多的事情。
所以我的问题是:使用现代 C++,我可以编写一个构造函数来接受任何重载基类构造函数接受的所有参数并将它们转发给相应的参数吗?
明确地说:我知道 using Parent::Parent语法,但据我所知,这不会让我有机会在调用基类构造函数之后做任何事情。
我已经在 SO 和互联网的深处搜索过这里,但我找不到任何类似的东西,即使这对我来说似乎是一个相当普遍的用例。任何帮助将非常感激。

最佳答案

一种方法是在派生类中创建一个可变参数模板构造函数,将其所有参数传递给基类。然后你可以在那个构造函数的主体中做任何你想做的额外的事情。那看起来像

struct Base
{
Base (int) {}
Base(int, int) {}
//...
};

struct Derived : Base
{
template<typename... Args>
Derived(Args&&... args) : Base(std::forward<Args>(args)...) // <- forward all arguments to the base class
{
// additional stuff here
}
};

关于c++ - 将继承的参数传递给基类构造函数,然后在派生类构造函数中做一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63123192/

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