gpt4 book ai didi

c++ - 使用 .get() 和 -> 运算符有区别吗?

转载 作者:行者123 更新时间:2023-12-04 13:21:02 25 4
gpt4 key购买 nike

我正在为 C++ 测试做一些学习,其中一个问题如下:

std::unique_ptr<Rectangle> rec = std::make_unique<Rectangle>(0, 0, 15, 15);

// why must we use rec.get()->?
rec.get()->setWidth(30);
rec.get()->draw();

我想知道的是为什么我们需要 .get()这里?如果我省略 .get() 会不会一样, 像这样:
rec->setWidth(30);
rec->draw();

最佳答案

.get()在您的情况下不需要 rec->draw()将取消引用底层指针,因此您可以使用与原始指针相同语法的唯一指针。 .get()当您需要将唯一指针传递给将原始指针作为参数的函数时,这是必要的。

关于c++ - 使用 .get() 和 -> 运算符有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60129060/

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