c+的新功能+;试图找出类约定 我对C++很陌生,在编码类方面我面临着一个问题。

c+的新功能+;试图找出类约定 我对C++很陌生,在编码类方面我面临着一个问题。,c++,class,C++,Class,虽然我理解与该类相关的每个函数都应该是该类的成员函数 我不确定如何处理不属于任何类的简单函数。例如帮助信息。它们与任何物体都没有关系,所以我应该把它们放在哪里?在我们自己的类中叫做misc或者utility或者类似的东西?或者我只是将它们放在一个与“sorta”相关的类中?不属于任何类的函数只是将它们放在main()和任何类之外。您还可以创建一个单独的.cpp和.h文件(.h表示声明,.cpp表示函数定义)来编写所有函数,然后将其包含在主文件中。1)如果是一个大型项目,我会将类似的项目组合在一起

虽然我理解与该类相关的每个函数都应该是该类的成员函数


我不确定如何处理不属于任何类的简单函数。例如帮助信息。它们与任何物体都没有关系,所以我应该把它们放在哪里?在我们自己的类中叫做misc或者utility或者类似的东西?或者我只是将它们放在一个与“sorta”相关的类中?

不属于任何类的函数只是将它们放在main()和任何类之外。您还可以创建一个单独的.cpp和.h文件(.h表示声明,.cpp表示函数定义)来编写所有函数,然后将其包含在主文件中。

1)如果是一个大型项目,我会将类似的项目组合在一起,并将它们放在您推荐的
misc.h
等文件中。为了避免混淆,您可以将它们作为类的静态成员函数,也可以将它们放在命名空间中:

杂项h

#include <iostream>
namespace misc {
    void print(char *s) { std::cout << s << std::endl; }
}
// OR
class misc {
public:
    static void print(char *s) { std::cout << s << std::endl; }
};
// static here allows calling the function without an object of type misc.
2) 如果是一个小项目,我不会太担心。我会把它们放在主功能上

3) 如果它们是实现某个类的帮助函数,我强烈建议在实现文件中将它们声明为static。这将防止与其他文件链接

这看起来像这样:

A.cpp:

static int print(char *s) { std::cout << s << std::endl; }

A::A() { print("Constructed"); }

<代码>静态int打印(char *s){sd::cOUT可能是一个副本:边注释的可能副本:如果一个函数不使用私有数据,考虑使它成为一个自由函数。边注:如果您有对匿名命名空间的编译器支持,请强烈考虑。
static int print(char *s) { std::cout << s << std::endl; }

A::A() { print("Constructed"); }