gpt4 book ai didi

c++ - 使用类/结构的不同方法 - C++

转载 作者:太空狗 更新时间:2023-10-29 23:48:27 25 4
gpt4 key购买 nike

struct Foo
{
void SayHello()
{
std::cout << "Hi, I am Foo";
}
};

我有上面给定的结构。我在我们的一个代码库中看到过这样的用法。

Foo foo;
{
foo.SayHello();
}

IMO,它做同样的事

Foo foo;
foo.SayHello();

或者第一种方法有什么优势/区别吗?

有什么想法吗?

最佳答案

在那种特殊情况下,它看起来很奇怪,就像一个待审核的候选人。在其他情况下可能有用:

Foo foo;
{
ReturnValue v = foo.SayHello();
Send(v);
}
...

它会限制 v 的范围。一种常见的用途是使其中的对象更早销毁。然后可以在大括号内使用在构造函数和析构函数中执行特殊操作的类:

Foo foo;
{
MutexLocker locker(sendMutex);
ReturnValue v = foo.SayHello();
Send(v);
}
...

在该示例中,发送队列的锁将在发送 v 时保持,并在锁定器在右大括号处被销毁时释放。

关于c++ - 使用类/结构的不同方法 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/584503/

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