and*_*ykx 22
处理这个问题的正确方法是实现pimpl习惯用法:为所有私有数据创建一个类或结构,并在头文件中放置一个指向这样一个对象的指针,以及一个前向声明.现在,从头文件中看不到任何私有数据和方法.
对此的正确答案是使用Pimpl(通过指针,如Pavel指出的那样).在Matthew Wilson的Imperfect C++中也有一种疯狂但可能正确的方法,你可以转发声明一个内部结构并在你的类中包含一个不透明的内存块,然后就地构造内部结构(其定义在实现文件)在实现文件的主类构造函数中.
我应该指出,威尔逊在一个附录中表明了这一点,他承认了几个这样的"反编程犯罪",作为程序员试图过于聪明的警告.他说,我说,你不应该使用它.但是,如果你有一些压倒一切的严格的性能要求,这是可能的,这可能是一些使用.
| 归档时间: |
|
| 查看次数: |
336 次 |
| 最近记录: |