![]() |
1
13
您需要包含标题定义
|
![]() |
2
4
事实证明,只有当我将c'tor内联时,问题才会出现。如果我把c'tor放在cpp里,在
|
![]() |
3
3
您可以考虑Booo::SydDypTr.()。与性能相比,它没有实际的缺点,并且对于转发声明更加友好:
没关系,上面没有额外的声明。 shared_ptr比auto_ptr做得更多,比如引用计数,但如果您不需要它,它应该不会有什么害处。 |
|
4
3
这似乎很可笑,但我通过添加
|
|
5
2
如其他人所指出的,如果在cont.cpp文件中实现析构函数并包含internal.h,则头中的转发声明是可以的。 问题可能在于Cont的使用。在使用(和销毁)Cont的每个cpp中,您必须包括Cont.h和inner.h。这就解决了我的问题。 |
![]() |
6
0
This question (使用私有析构函数删除对象)和 this question |
![]() |
7
0
从技术上讲,您不应该用不完整的类型实例化标准库模板,尽管我知道没有哪种实现不起作用。实际上,Sharptooth的答案也是我推荐的。 对impl指针使用裸指针并没有什么问题,只要在析构函数中对其调用delete。您可能还应该实现或禁用复制构造函数和赋值运算符。 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 6 月前 |
![]() |
SpeakX · 多线程上下文中的弱指针未过期时更新 1 年前 |
|
Vincent31 · 对象上的C++共享指针多次调用析构函数 1 年前 |