指向类的do指针增加了模块性



我最近注意到,在编译大型项目时(我一直在玩Audacity源代码),更改被许多其他文件引用的文件,比如说在几十个其他文件中引用的工具栏小部件,会导致编译花费很长时间。如果你需要调整或调试这样的文件,完成每个编译周期可能需要几分钟或更长的时间。

如果在引用工具栏的文件中使用指针,编译器是否仍然需要重新编译每个包含对类的引用的文件?

如果没有,它还会通过设计编译这些文件吗?

在任何现有的语言或框架中,是否可以将指针指向类的原型而不是实例?

好吧,如果你更改了一个接口,那么你就无能为力了;这些东西必须重新编译。然而,如果代码是使用PIMPl设计模式设计的,那么实现更改通常不会导致大量重新编译。

记住,即使在使用指针时,编译器通常也需要知道所指向对象的大小。PIMPL模式将"真实"对象隐藏在另一个指针后面。

是的,但这取决于文件在make文件中的来源。如果正确使用已定义的接口和工厂类,则只有在修改接口头文件时,才需要重新生成其他模块。因此,修改模块头和/或源将不需要重新生成模块。

只有当指针是通过处理实际实例创建的工厂创建的,并且指针是抽象接口类型时,创建指针才会起作用。

也就是说,您需要包括接口头并适当地修改make文件依赖项,这样它们就不会直接依赖于模块。

最新更新