はちょうど例えばC++列挙型の関数を宣言できますか?
に列挙型の関数を宣言することが可能である場合には不思議:
class myclass{
//....
enum myenum{ a, b, c, d};
myenum function();
//....
};
myenum function()
{
//....
}
はちょうど例えばC++列挙型の関数を宣言できますか?
に列挙型の関数を宣言することが可能である場合には不思議:
class myclass{
//....
enum myenum{ a, b, c, d};
myenum function();
//....
};
myenum function()
{
//....
}
は、はい、列挙型を返すために非常に一般的です。
関数が使用したいので、あなたのenumをクラスの外に置いてもらいたいでしょう。または、関数の列挙型の戻り値の型をクラス名で指定します(列挙型はクラス定義のパブリック部分になければなりません)。
class myclass
{
public:
enum myenum{ a, b, c, d};
//....
myenum function();
//....
};
myClass::myenum function()
{
//....
}
はい、間違いなく。
ただ、列挙型は、あなたのクラスのpublic
セクションであることを確認してください。
class myclass
{
public:
enum myenum{POSITIVE, ZERO, NEGATIVE};
myenum function(int n)
{
if (n > 0) return POSITIVE;
else if (n == 0) return ZERO;
else return NEGATIVE;
}
};
bool test(int n)
{
myclass C;
if (C.function(n) == myclass::POSITIVE)
return true;
else
return n == -5;
}
どうもありがとうございました。 – trikker