繁体   English   中英

我可以将智能指针用作 C++ 中的 class 成员吗?

[英]Can I use smart pointers as class members in C++?

我了解到唯一指针在 scope 的末尾“死亡”。 那么它在 class 成员中是如何工作的呢? 共享指针有效吗?

是的,一点没错。 您可以在类中使用它们作为成员。

当它用作成员变量时,唯一指针的生命周期是 object 本身的生命周期(除非您明确释放它们)。 当 object 被破坏时,唯一指针和所有智能指针将释放其 memory。

我可以将智能指针用作 C++ 中的 class 成员吗?

是的。 除了根本无法实例化的类之外,几乎任何 class 都可以成为成员。

我了解到唯一指针在 scope 的末尾“死亡”。

scope 末尾的所有自动变量“死”。 此属性并非特定于智能指针。 例子:

{
    int i = 42;
} // i "dies" here

使智能指针与裸指针不同的一点不是它们在 scope 末尾“死亡”(因为裸指针也“死亡”),而是智能指针在“死亡”时做了什么。

当超级 object “死”时,非静态成员变量“死”。

共享指针有效吗?

是的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM