0

我想从函数返回一个枚举值,因为我的构造函数需要创建一个枚举值。

我的课 :

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));
4

3 回答 3

0

当你在一个类中进行枚举时,类名就像一个命名空间。

class MyClass
{
  enum SomeType
  {
    Val
  };
};

MyClass::SomeType v = MyClass::Val;
于 2013-04-22T06:41:11.157 回答
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<

    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

于 2013-04-22T07:54:06.270 回答
-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));
于 2013-04-22T06:43:56.670 回答