Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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++ OOP风格、类、函数库_C++_Oop_Coding Style - Fatal编程技术网

C++ OOP风格、类、函数库

C++ OOP风格、类、函数库,c++,oop,coding-style,C++,Oop,Coding Style,我有一个包含几个类的项目。我在这个项目中添加了几个函数,这些函数由其中一个类使用,名为MainClass。我将所有这些函数放在一个文件stuff.h中。为了使用这些函数,我在类MainClass的实现开始时包含stuff.h文件。我想知道这是一种好的编程风格,还是创建一个新类并将我的函数添加到这个类中更好。然后我在main类中实例化了这个类不太好的样式。从事实出发,标题实际上并不打算包含真正的代码,而是在其他地方定义的东西的声明 如果您的“外部”函数仅由MainClass使用,为什么不使用这些类

我有一个包含几个类的项目。我在这个项目中添加了几个函数,这些函数由其中一个类使用,名为
MainClass
。我将所有这些函数放在一个文件
stuff.h
中。为了使用这些函数,我在类
MainClass
的实现开始时包含
stuff.h
文件。我想知道这是一种好的编程风格,还是创建一个新类并将我的函数添加到这个类中更好。然后我在
main类中实例化了这个类

不太好的样式。从事实出发,标题实际上并不打算包含真正的代码,而是在其他地方定义的东西的声明

如果您的“外部”函数仅由MainClass使用,为什么不使用这些类方法呢?甚至可能是私人的,所以他们只能在课堂上看到?尽可能把东西封装起来。如果您尝试遵循C++,尽量不要使用“普通C函数”。这是不同的语言。如果您绝对需要普通例程,请改用名称空间。但请尽量将代码放在模块(.cpp)中,而不是放在标题中

关于其他课程。这取决于你是否知道你为什么需要其他课程。如果你不知道为什么,你不需要它们。顺便说一句,OOP并不总是“最佳”方法,特别是在继承和组合之间的平衡方面。你应该了解你真正想要达到的目的,选择合适的技术

的确,你需要好的C++书籍。关于项目组成、编译过程、翻译单元的章节,让您了解其中的逻辑。这个问答网站不能解释一切。只需给出一些要点


我认为最好创建一个新类,或者按照函数的不同使用方式排序几个新类。这更符合经典OO。

所以我只是将声明放在stuff.h中,并将实现放在stuff.cpp文件中。将这些函数放在单独的类中是个坏主意吗?谢谢。如果只有MainClass需要一些东西,为什么它不能成为MainClass的一部分?好的,若你们看到组件逻辑,启动新的类模块,比如UtilityClass.cpp,在类或名称空间中实现代码,并通过包含哪个MainClass可以看到它的接口来添加UtilityClass.h。它是关于C++项目的一般设计。阅读书籍,你无法避免:-)。从你的答案来看,最好将这些函数添加到main类中。经过深思熟虑,这不是一个坏主意。一个类应该包含的函数的数量有限制吗?从技术上讲,这里不应该满足任何限制,但从另一方面来说,您需要保持事情的有序。所以从另一方面来说,你们应该保持平衡。如果MainClass中的函数太多,请考虑将它们分组并形成其他接口(类或名称空间)。通常情况下,建议模块不要超过2000行,但大多数情况下这是非常主观的。你可以看到这个问题被搁置。不是因为它太糟糕,而是因为它具有挑衅性。