C++:避免编译器依赖与避免指针过度使用
C++ : avoiding compiler dependencies vs. avoiding pointer overuse
我知道在不需要指针的地方过度使用指针被认为是老式/过时的风格。然而,我发现这个理想与避免编译器依赖性的另一个考虑相冲突。
具体来说,如果成员变量是指针,我可以在头文件中使用正向声明,并避免#include语句。但这会导致我将自己类的成员变量作为指针,即使没有很好的理由这样做
顺便说一句,我发现使用Qt框架(我很喜欢)可以让我用这种java风格的堆编程风格来编程,因为这就是接口的设置方式。
我如何权衡这两个相互竞争的因素?
这取决于情况。减少依赖性绝对是一件好事,但它必须与所有其他问题进行权衡。例如,使用编译防火墙习惯用法可以移动头文件中的依赖项,以一个为代价分配。
至于QT的作用:它是一个GUI框架不考虑QT)意味着大量的多态性类具有标识,不能复制。在这种情况下通常必须使用动态分配指针。避免指针的规则主要涉及对象具有值语义。
(顺便说一句,没有什么"老式"或关于使用过多指针的"过时"。这是规则自从我25年前开始使用C++以来。)
Qt需要它,因为它是一个可以动态加载的库。用户可以编译和链接,而不必担心实现细节。您可以在运行时使用许多版本的Qt,而无需重新编译。这是非常强大和灵活的。如果在类内部使用私有对象实例,这是不可能的。
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 如何从C++中的依赖类型中获得它所依赖的类型
- 为什么使用 "this" 指针调用派生成员函数?
- 函数向量_指针有不同的原型,我可以构建一个吗
- 当依赖关系和依赖关系都是多态时,在哪个继承级别存储依赖关系指针?
- 如何解决指针数组中的数据依赖关系
- 一旦使用,整个程序中的智能指针及其依赖关系
- 指针和循环依赖项
- 删除对特定类型的指针的依赖关系
- c++相互依赖的类模板,指针投射派生类
- 智能指针的依赖关系注入是否违反单一责任原则
- 如何使用指针将 numpy 数组传递给 C++/SWIG,而无需依赖 numpy.i
- void指针之间的比较,它是定义的还是依赖于编译器的
- C++:避免编译器依赖与避免指针过度使用
- 如何使用指向通用模板类的指针来访问依赖于模板参数类型的成员函数
- 依赖于Windows句柄的类型是否为指针
- c++循环构造依赖:类的构造函数都有指向彼此的指针
- 为什么前向声明和指针(或引用?)可以解决循环依赖
- sizeof(指针)依赖于对象类型吗?