gpt4 book ai didi

C++:使用删除器的类的前向声明,用于可以重复的唯一指针

转载 作者:行者123 更新时间:2023-11-30 02:40:57 24 4
gpt4 key购买 nike

在 C++ 中,可以使用前向声明来允许指向不完整类型的指针。

class A;
A *p;

但是,在某些情况下我想改为声明一个唯一的指针,所以我使用

class A;
class A_Deleter { void operator()(A*); }
unique_ptr<A, A_Deleter> p;

这在很多情况下都足够了,但有一个主要缺点。与真正的前向声明不同,它不能写两次。 IE。当这段代码编译时:

class A;
class A;

这个没有:

class A;
class A_Deleter { void operator()(A*); }
class A;
class A_Deleter { void operator()(A*); }

你会如何转发声明一个可删除的类?

最佳答案

为什么要重复呢?

将声明放在 header 中(使用适当的包含防护)并在需要的地方包含它。

关于C++:使用删除器的类的前向声明,用于可以重复的唯一指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28560676/

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