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

问题描述 投票:0回答:2

我知道在不必要的地方过度使用指针被认为是老式/过时的风格。然而,我发现这个理想与避免编译器依赖的另一个考虑相冲突。

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

顺便说一句,我发现使用 Qt 框架(我喜欢)让我能够以这种 java 风格的一切都在堆上的编程风格进行编程,因为这就是界面的设置方式。

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

c++ pointers dependencies heap-memory
2个回答
0
投票

这要看情况。 减少依赖绝对是一件好事, 就其本身而言,但必须权衡所有其他问题。 例如,使用编译防火墙习惯用法可以移动 头文件之外的依赖项,代价是一个 分配。

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

(顺便说一句,没有什么“过时的”或 关于使用太多指针的“过时”。 本来就是规矩 自从 25 年前我开始使用 C++ 以来。)


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.