c++98 (c++11 でも動作します)
#include <iostream>
class myClass
{
public:
enum myBasket{one, two, three};
myBasket bSize(myBasket size){
return size;
}
};
int main()
{
myClass A;
//enum の名前は c++98 ではスコープと見なされません std::cout<
return 0;
}
c++11
#include <iostream>
class myClass
{
public:
enum myBasket{one, two, three};
myBasket bSize(myBasket size){
return size;
}
};
int main()
{
myClass A;
//only worked on c++11, the enum name work as a scope
std::cout<<A.bSize(myClass::myClass::one)<<std::endl;
return 0;
}
c++ 11で列挙型を指定し、前方宣言も行うことができます
.hpp
enum class myBasket;
class myClass
{
public:
myBasket bSize(myBasket size);
};
.cpp
enum class myBasket : int{one, two, three};
enum クラスは暗黙的に int に変換できないことに注意してください