C ++:避免​​编译器依赖性与避免指针过度使用

时间:2013-08-20 16:52:18

标签: c++ pointers compiler-construction dependencies heap

我知道过度使用不必要的指针会被认为是过时/过时的风格。但是,我发现这种理想的冲突与另一个避免编译器依赖性的考虑。

具体来说,我可以在头文件中使用前向声明,如果成员变量是指针,则避免使用#include语句。但是这导致我将自己的类的成员变量作为指针,即使没有充分的理由这样做。

顺便说一句,我发现使用Qt框架(我很喜欢)引导我使用这种java-esque一体化编程风格进行编程,因为这是界面设置的方式。

我如何衡量这两个相互竞争的考虑因素?

2 个答案:

答案 0 :(得分:0)

Qt需要它,因为它是一个可以动态加载的库。用户可以编译和链接,而无需担心实现细节。您可以在运行时使用许多版本的Qt而无需重新编译。这非常强大且灵活。如果在类中使用私有对象实例,则无法实现这一点。

答案 1 :(得分:0)

这取决于。减少依赖性绝对是件好事, 本身,但必须权衡所有其他问题。 例如,使用编译防火墙惯用法可以移动 依赖于头文件,以一个为代价 分配

至于QT的作用:它是一个GUI框架,(通常是---我 没看过QT)意味着很多多态,而且最多 类具有标识,不能被复制。在这种情况下,你 通常必须使用动态分配和使用 指针。避免指针的规则主要涉及对象 具有价值语义。

(顺便说一下,没有什么“老式”或者 关于使用太多指针的“过时”。这是规则 自25年前我开始使用C ++以来。)