【问题标题】:Splitting task among several functions在多个功能之间拆分任务
【发布时间】:2011-09-16 01:52:39
【问题描述】:

我正在寻找能够让我在函数中执行类似函数的操作。 这是一个更明显的例子:

class A{
 private: 
 int n;
 int c;
 public:
 void foo();
}

然而 foo 是一个函数,它应该改变 c,但需要 n。 foo 有点复杂,所以我想把它分成不同的子功能。 由于foo 需要n,因此通过友元函数并不简单(不传递n(我的实际问题中有大量变量)

【问题讨论】:

  • 我在这里看不到任何“真正的”问题。 n & c 都在同一个班级?在这里拆分函数应该不是问题。

标签: c++ coding-style


【解决方案1】:

只需将所有这些子函数放在同一个类中并将它们设为私有?

【讨论】:

    【解决方案2】:
    class A
    {
        int n;
        int c;
        void foo_thing_1();
        void foo_thing_2();
    public:
        void foo() { foo_thing_1(); foo_thing_2(); }
    };
    

    【讨论】:

    • 那么就没有办法了吗? :) 该死的
    • @Bios:你的实际问题是什么?您没有解释任何内容,并且此答案中的总体思路涵盖了复杂类的最明智设计。
    【解决方案3】:

    正如其他答案已经指出的那样,简单的私有函数就足够了——除非你还需要访问原始函数内部变量——这在 c++11 中是不可能的。在即将到来的 c++0x 中,您可能想查看 lambda 函数——尽管我确信这不是它们的本意。

    【讨论】:

      猜你喜欢
      • 2019-09-30
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 2017-01-21
      • 1970-01-01
      • 2016-10-02
      相关资源
      最近更新 更多