![]() |
1
4
实际上,是的,尽管有一些技术,例如 "The Fast Pimpl Idiom," 这可以用来消除或加速堆分配,代价是增加复杂性。
仅当需要这样做时(即,仅当您的用户对您的类执行了堆分配这一事实感到惊讶时)。许多类执行堆分配,包括C++标准库中的许多(例如所有容器)。
可能:-)除非您对类有很高的性能要求,或者您希望类的实例被频繁地创建和销毁,否则我不会太担心它。当然,如果您确实有重要的性能需求,那么PIMPL可能不是一个好的选择。 |
![]() |
2
4
是的。
我会认为过于激进的评论:)如果你的类对性能如此关键,也许你应该避免使用pimpl习惯用法。如果你代表的是一个数字,这可能是有关的,值得注意。如果您正在隐藏数据库连接的实现,则不值得注释:)
是的,这对用户来说更明显一点,但可能同样不值得为自己担心。
这是一种权衡,但是如果类足够复杂,能够真正从PIMPL习语中获益,那么您可能可以假定堆分配是正常的。如果我使用你的图书馆,我可能不会担心。 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |