gpt4 book ai didi

c++ - 多态智能指针的使用

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

到目前为止,我有一个函数正在获取类型为 IArg 的参数我可以执行以下操作:

struct IArg
{
};

struct Arg : IArg
{
};

void f (IArg* arg)
{
// do something
}

f(new Arg);

现在当我得到这个:

void f (std::shared_ptr<IArg> arg)
{
// do something
}

为什么它再次适用于

f(std::make_shared<Arg>());

std::shared_ptr<A>std::shared_ptr<B>即使 A 也是不同的类型和 B是相关的,对吧?

最佳答案

A std::shared_ptr<T>可以从 std::shared_ptr<U> 隐式构造当且仅当 U *可以隐式转换为 T * .查看构造函数重载 (9) on cppreference.com .

关于c++ - 多态智能指针的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33632549/

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