gpt4 book ai didi

C++:如何将此指针传递给此类?

转载 作者:行者123 更新时间:2023-11-30 01:36:18 24 4
gpt4 key购买 nike

这是一段简单的代码。我需要帮助的是我写的两个地方“???”。

目标是将一个临时指针传递给容器类,然后容器类成为该对象的唯一所有者。但是,我写了“???”的两个地方,我不知道该写什么。

特别是,我在初始化列表中写了什么,当我实际实例化我的容器类时我写了什么?

class abstractBase
{
virtual void method() = 0;
};

class derived : public abstractBase
{
// ...
};

class container
{
std::unique_ptr<abstractBase> ptr;
container(std::unique<abstractBase> input)
: ??? //What do I write here to make input = ptr?
{}
};

int main()
{
container instance(???) //what do I write here to pass a temporary ptr of type derived?
}

对于第一个,我想可能

: ptr(std::move(input))

会是这样吗?

对于第二个,我不确定。也许只是std::make_unique<derived> input

最佳答案

是的,std::movestd::make_unique应该在这里做的伎俩:

class container
{
std::unique_ptr<abstractBase> ptr;

public:
container(std::unique_ptr<abstractBase> input)
: ptr(std::move(input))
{}
};

int main()
{
container instance(std::make_unique<derived>());
}

您可能还想看看 this article关于接收器参数和仅移动类型。

关于C++:如何将此指针传递给此类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52457042/

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