gpt4 book ai didi

C++加载程序类

转载 作者:搜寻专家 更新时间:2023-10-31 01:57:45 30 4
gpt4 key购买 nike

我在考虑一个加载器类并想出了两种不同的方法。

class Loader{
public:
Loader(const Path& path);
File load() const;

private:
Path path_;
};

对比

class Loader{
public:
Loader();
File load(const Path& path) const;
};

对于第一种方法,我需要每个文件一个 Loader,而 Loader 类代表一个状态。对于第二个,我可以用一个加载器类加载不同的文件。除了这些明显的差异之外,您会选择哪种方法以及为什么或者是否有第三种可能更好的方法?

最佳答案

还有其他方法。

如果加载文件时不在Loader 类中维护任何状态,那么您可以简单地编写一个自由函数

File load(const Path& path); //a free function.

或者如果你想让它成为一个成员函数,你可以使函数static

class Loader{
public:
static File load(const Path& path);
};

//usage
Loader::load(path);

有时这样的解决方案完全取决于情况,有时则取决于公司/程序员的个人喜好和品味。没有一种最佳解决方案!

您甚至可以选择在 File 类本身中编写 load 函数:

class File {
public:
bool load(const Path& path); //non-static, or/and the next one!
static File load(const Path& path); //static
};

在这种情况下,您可能想要更改函数的名称:open() 似乎比 load() 更好。

关于C++加载程序类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5203467/

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