我想从函数返回一个枚举值,因为我的构造函数需要创建一个枚举值。
我的课程:
class myBasket{
enum myType {type1, type2, type3} MT;
public:
myBasket(myType thetype) : MT(thetype){}
};
下面的部分是我要创建的功能,但我不知道如何返回枚举值,所以我只是写它来向你展示我想要的东西,因为这是我的问题,也怎么样?如果需要,我在头文件中识别它?
int bSize(int size){
return size;
}
致电:
new myBasket(bSize(chosen_size));
答案 0 :(得分:0)
在类中进行枚举时,类名称就像命名空间一样。
class MyClass
{
enum SomeType
{
Val
};
};
MyClass::SomeType v = MyClass::Val;
答案 1 :(得分:0)
c ++ 98(也适用于c ++ 11)
#include <iostream>
class myClass
{
public:
enum myBasket{one, two, three};
myBasket bSize(myBasket size){
return size;
}
};
int main()
{
myClass A;
//枚举名称不考虑作为c ++ 98中的作用域 的std :: COUT&LT;
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};
注意枚举类无法隐式转换为int
答案 2 :(得分:-1)
enum myType {type1, type2, type3} MT;
class myBasket{
public:
myBasket(myType thetype) : MT(thetype){}
};
myType bSize(int size){
return somesize; //cant return the input value so modified
}
new myBasket(bSize(chosen_size));