Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.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++程序,它使用多个类(和多个头文件)。我在其中一个类中创建了一个名为“move”的枚举类型,但我需要从所有类中访问该类型。如果我只在一个头文件中保留enum声明,其他类将无法访问它,编译器将在其使用的所有地方(该类和main中除外)给出一个错误。如果我在main中声明它,则没有类可以访问它。如果我在每个类头文件中声明它,我会因为重新定义它而得到一个编译器错误_C++_Class_Enums_Header_Enumeration - Fatal编程技术网

多个类头文件上需要的枚举类型 我试图制作一个C++程序,它使用多个类(和多个头文件)。我在其中一个类中创建了一个名为“move”的枚举类型,但我需要从所有类中访问该类型。如果我只在一个头文件中保留enum声明,其他类将无法访问它,编译器将在其使用的所有地方(该类和main中除外)给出一个错误。如果我在main中声明它,则没有类可以访问它。如果我在每个类头文件中声明它,我会因为重新定义它而得到一个编译器错误

多个类头文件上需要的枚举类型 我试图制作一个C++程序,它使用多个类(和多个头文件)。我在其中一个类中创建了一个名为“move”的枚举类型,但我需要从所有类中访问该类型。如果我只在一个头文件中保留enum声明,其他类将无法访问它,编译器将在其使用的所有地方(该类和main中除外)给出一个错误。如果我在main中声明它,则没有类可以访问它。如果我在每个类头文件中声明它,我会因为重新定义它而得到一个编译器错误,c++,class,enums,header,enumeration,C++,Class,Enums,Header,Enumeration,在哪里声明枚举类型,以便每个类头文件都可以访问它 在哪里声明枚举类型,以便每个类头文件都可以访问它 在它自己的标题中。为您的枚举创建一个单独的头文件,并在需要使用该头文件的所有其他头文件中包含该头文件。不要忘记添加以避免多个包含项: #ifndef MOVE_H #define MOVE_H enum move foo { LEFT, RIGHT, UP, DOWN }; #endif /* MOVE_H */ 注意:如果有多个逻辑上属于枚举的枚举,或者是一个与类一起属于的 EnU

在哪里声明枚举类型,以便每个类头文件都可以访问它

在哪里声明枚举类型,以便每个类头文件都可以访问它

在它自己的标题中。为您的
枚举
创建一个单独的头文件,并在需要使用该头文件的所有其他头文件中包含该头文件。不要忘记添加以避免多个包含项:

#ifndef MOVE_H
#define MOVE_H

enum move foo {
    LEFT, RIGHT, UP, DOWN
};

#endif /* MOVE_H */

注意:如果有多个逻辑上属于枚举的枚举,或者是一个与类一起属于的<代码> EnUM <代码>,你可能想把这两个放在同一个报头中。

绝对没有规则表明C++中每个头有一个类(或者每个类有一个头)。在小型程序中(例如,少于十几行),我建议整个程序只有一个通用头文件!在具有其他公共声明的标头中。如果它必须在一个类中声明,并且所有其他类都依赖于它,请重新访问您的设计,因为它的耦合太紧密。我同意使用一个文件比使用多个小文件更容易,但这是一个作业,他们要求我们使用多个文件。我不同意。有几百个小C++头文件是一个噩梦。@ BaselestalyKev痒我有说几百个小标题吗?此外,如果一个
enum
真的像OP所建议的那样在任何地方都被使用,那么这在逻辑上就是正确的选择。不,他可能只有一个头文件用于他的整个(可能很小)应用程序!每种类型(即枚举或类)都有一个头,这实在是太过分了@如果应用程序很小,那么它的枚举数就很少。如果他的枚举在逻辑上相互连接,那么可以将它们放在同一个头中。如果它们彼此不连接,则可以使用单独的文件。此外,现代IDE已经大大简化了对多个头文件的管理,因此促使程序员减少头文件数量的主要动机之一现在已经不复存在了。让我困惑的是我的大学导师向我指出的事情;当使用“包含”时,链接器只能链接它一次,直到它必须重新包含(如果有意义的话)。