gpt4 book ai didi

c++ - 我需要组合几种方法而不添加一些数据成员。有任何想法吗?

转载 作者:行者123 更新时间:2023-11-30 02:13:25 26 4
gpt4 key购买 nike

假设我需要编写几个函数来处理一些数据。这些函数执行一个单一的任务——一些数学计算。我想没有必要将它们与一些数据成员结合起来。

我应该使用:

  1. 一个没有数据成员的类,并将这些函数声明为静态方法,这样我就可以在不创建类对象的情况下使用它们,
  2. 或匿名命名空间,
  3. 或者我可能需要更复杂的架构和设计?

其实我写的语言是C++,但我觉得这个问题不依赖于开发语言是什么。

最佳答案

我不明白为什么要将它们放在匿名命名空间中。这样做是为了确保这些功能只在一个编译单元中使用,这与您的问题无关。

现在,要在类中的静态函数或实用程序命名空间中的自由函数之间进行选择,这取决于您的需要。这些解决方案之间存在一些差异:

  • 在类中,您可以将一些函数设置为私有(private)、 protected 或公共(public)。例如,您可能拥有私有(private)函数来执行公共(public)函数所需的常见操作。
  • 命名空间可以扩展,它们的定义分布在多个文件中。
  • 类可以被子类化(因此它们的功能也可以扩展)。您可以拥有一个模型,其中包含 protected 静态函数和对此类进行子类化的客户端类,以实现更好的封装。

关于c++ - 我需要组合几种方法而不添加一些数据成员。有任何想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/326179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com