Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;组织职能流程 我正在编写一个C++程序的程序,我需要编写一个函数,输入一个与它相连的计算机的一些数字。_C++_Organization - Fatal编程技术网

C++;组织职能流程 我正在编写一个C++程序的程序,我需要编写一个函数,输入一个与它相连的计算机的一些数字。

C++;组织职能流程 我正在编写一个C++程序的程序,我需要编写一个函数,输入一个与它相连的计算机的一些数字。,c++,organization,C++,Organization,此功能应执行许多不同且定义明确的任务,例如:从计算机获取数据(字符),检查字符是否有效,将字符转换为实际数字,以及许多其他任务。作为单个函数编写,它至少有500行长。因此,我将编写一组较短的函数和一个“main”函数,以唯一有意义的顺序调用其他函数。这些函数永远不会在代码的其余部分被调用(当然,主函数除外)。最后一件事-函数需要相互传递相当多的变量 组织这些职能的最佳方式是什么?我的第一个困难是创建一个只有公共部分中的“主”函数的类,以及其他函数和由不同函数共享的变量作为私有成员,但我想知道这

此功能应执行许多不同且定义明确的任务,例如:从计算机获取数据(字符),检查字符是否有效,将字符转换为实际数字,以及许多其他任务。作为单个函数编写,它至少有500行长。因此,我将编写一组较短的函数和一个“main”函数,以唯一有意义的顺序调用其他函数。这些函数永远不会在代码的其余部分被调用(当然,主函数除外)。最后一件事-函数需要相互传递相当多的变量


组织这些职能的最佳方式是什么?我的第一个困难是创建一个只有公共部分中的“主”函数的类,以及其他函数和由不同函数共享的变量作为私有成员,但我想知道这是否是一个好的实践:我认为它不尊重C++类的“类”概念。例如,要使用此“函数组”,我需要执行以下操作:

class GetNumbers {
    public:
        //using the constructor as what I called "main" function
        GetNumbers(int arg1, char arg2) {
            performFirstAction();
            performSecondAction();
            ...
        }
    private:
        performFirstAction() {...};
        performSecondAction() {...};
        ...

        bool aSharedVariable;
        int anotherVariable;
        ...
};
我实际上需要从计算机中输入这些数字:

GetNumbers thisMakesNoSenseInMyOpinion (x,y);
使“main”函数成为普通类方法(而不是构造函数)似乎更糟糕:

GetNumbers howCanICallThis;
howCanICallThis.getNumbers(x,y);
...
//somewhere else in the same scope
howCanICallThis.getNumbers(r,s);

这实际上是一个软件设计问题。老实说,除非你和其他人共享这个组件,否则我真的很担心它是如何封装的

许多库(新库和旧库)可能会生成一系列以特定方式使用的函数。有时,它们有一个内置的“状态机”,但没有一种特定的方式来强制函数按特定的顺序使用。这是可以的,只要它有很好的记录。一组函数的前缀可能是同一个单词,如果它是可重用的,则可以打包为库,这样就可以有人链接到您的dll并包含适当的头

有限状态机(FSM)或有限状态自动机(FSA,复数:自动机)、有限自动机或简单的状态机是计算的数学模型

组织一组计算的另一种方法是将它们打包为一个类,允许构造函数接受所需的输入,然后

  • 在构造函数中启动所需的计算
  • 调用公共函数->compute()后启动计算
  • 使其成为
    functor
    (具有一组重载()运算符的类)
  • 基本上还有数不清的其他选择
  • 这有一些好处,因为如果以后您有多种方法来计算结果,您可以使用称为策略模式的东西来动态替换它

    在计算机编程中,策略模式(也称为策略模式)是一种行为软件设计模式,允许在运行时选择算法

    最后,只要你保持一致,你用哪一个都不重要。如果你想用一种特定的语言使某些东西更“地道”,你真的必须去那里看看网络上的一些代码,以了解事情是如何完成的。不同的社区喜欢不同的风格,这最终都是主观的