2013-04-13 74 views
0

我有几个类在不同的文件。我想从main()函数的文件机制中使用简单的C读取 - 只需从两个文件中读取两个整数即可。混合OOP与结构代码

现在,我应该创建一个单独的File类并从那里处理它吗?

我应该在单独的"file.cpp"文件中创建标准功能吗?

我应该直接在main()中写下这3 - 5行代码吗?

回答

2

我认为你的意思是你将OOP与程序编程混合在一起。如果是这样,那很好。 C++旨在将这两者结合在一起。

如果你想写一个没有任何状态的函数,不要把它作为一个类的成员。只需编写一个名为read_values_from_file或任何你想要的免费函数。在代码中识别个人责任并将其分解为功能绝对是一种很好的做法。

你应该放入哪个文件取决于你是否会重用它。如果您只在main开头使用它,请将其放入main.cpp。为了它,不要给它自己的文件。否则,如果要在多个翻译单元之间使用相同的功能,将其声明放置在头文件中并将其定义放置在实现文件中可能会很有用。

无论你把它放在哪里,都不要让这个函数成为一个类的成员。这正是Java程序员所做的,因为他们别无选择。 C++相信你知道什么时候最适合创建一个类:当你有状态时。

但是,我不认为你有一个很好的理由使用任何C库函数从文件中读取。没有理由不能编写使用C++标准库的过程代码。只需使用文件流(如std::istream)来读取值。

1

由于问题被标记为C++,我建议您检查c++ streams的主题。我不明白你为什么要写文件阅读相关的类。

+0

我想写这个类只是为了放置文件流处理。这是我的问题,我可以使用C++文件流,但是我应该在哪里将它们放在OOP系统中,如果我只是在一开始就使用它们来快速从文件中读取两个变量? “main.cpp”中的 – user2252786

+0

。除非你有一个原因,为什么你会想要根据你所在的系统做不同的处理,在这种情况下,它会进入“systemdependent.cpp”等等。 –

+0

在这种情况下,你应该把它们放在你需要的地方(例如'main()'),而不是为了类而创建类。 –

0

这个任务非常小,如果采用“最佳实践”很难说。

使它现在工作,使用scanfstd::cin或任何方便,如果你发现自己需要更多的功能,然后开始设计更强大的东西。

不要浪费一大堆时间,直到你知道你将需要这些额外的功能。

+0

是的,我知道YAGNI规则,但是这是作业和从文件中读取变量是一个要求。 – user2252786