[英]C++ - Use enum from different header file, same namespace
我希望能夠使用在一個文件中定義並在其他文件中使用的枚舉 class。 當我嘗試時,我只收到此錯誤: enum "Animal" has no member "Lion"
我找不到任何回答我問題的帖子。
這是我想到的一個例子:
zooanimals.h
#pragma once
namespace Zoo
{
enum class Animal;
}
zooanimals.cpp
#include "zooanimals.h"
namespace Zoo
{
enum class Animal
{
Lion,
Elefant,
Monkey
};
}
zoo.h
#pragma once
namespace Zoo
{
class Visitor;
}
zoo.cpp
#include "zoo.h"
#include "zooanimals.h"
namespace Zoo
{
class Visitor
{
Animal favoriteAnimal = Animal::Lion;
};
}
您不會在聲明和定義中拆分枚舉,所以
enum class Animal
{
Lion,
Elefant,
Monkey
};
應該在 header 中,而不是在源文件中。
請記住,當您將 header 包含到源文件中時,該源文件只能“看到”在此 header 中聲明的內容。 在您的情況下,當編譯器處理 zoo.cpp 時,它無法“看到” Animal
的值,因為它們不在 header 中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.