gpt4 book ai didi

c++ - 如何从非直接基类继承构造函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:39:34 24 4
gpt4 key购买 nike

我如何从爷爷(非直接基础)继承一个构造函数给儿子?例如:

class Grandpa
{
public:
Grandpa();
~Grandpa();
};

class Dad : public Grandpa
{
public:
Dad();
~Dad();
};

class Son : public Dad
{
public:
using Grandpa::Grandpa;
~Son();
};

ERROR: "can only inherit constructor from direct base"

有没有办法让它工作?

最佳答案

无法继承非直接基类的构造函数。但是,您仍然可以使用它。如果你想从Son的构造函数传递一个值给Grandpa的构造函数,你可以这样做;

class Grandpa
{
public:
Grandpa(string surname){
// some codes in the constructor
}
~Grandpa();
};

class Dad : public Grandpa
{
public:
Dad(string surname) : Grandpa(surname){};
~Dad();
};

class Son : public Dad
{
public:
Son(string surname) : Dad(surname){};
~Son();
};

这里我们做的很简单,将值从Son 的 构造函数传递给Dad 的 构造函数,它只是传播给Grandpa' s 构造函数。

关于c++ - 如何从非直接基类继承构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54066315/

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