让我们假设以下类:
class FileManipulator
{
static InputTypeOne * const fileone;
InputTypeTwo *filetwo;
public:
FileManipulator( InputTypeTwo *filetwo )
{
this->filetwo = filetwo;
}
int getResult();
};
FileManipulator
使用两个文件中的数据从getResult()
. 这意味着针对不同对象的多次迭代filetwo
和通过迭代的多次构造。让我们说,输入是一些 .csv 数据库。整个任务保持不变。FileManipulators
InputTypeTwo
InputTypeOne
程序本身是多模块的,上面的操作只是它的小单元。
我的问题是如何static
根据面向对象的范式和封装来处理该领域。该字段必须以某种方式初始化,因为它不是不同程序执行的固定值。据我了解 C++ 规则,我无法创建设置字段的方法,但在我看来,将其公开并在任何类(FileManipulator
或友好的类)之外对其进行初始化似乎与封装不一致。
那我能做什么?我想到的唯一一件事就是以 C 方式进行,即在一个足够隔离的编译单元中对其进行初始化。这真的是我能做的吗?如何以专业的方式解决?
编辑
我将指向常量的指针更正为常量指针,这是我的初衷。