【发布时间】:2015-06-05 16:16:35
【问题描述】:
AGK_Delete.h
class AGK_Delete
{
private:
enum OBJTYPE { text, button };
OBJTYPE TypeConversion(const char * type);
};
AGK_Delete.cpp
AGK_Delete::OBJTYPE AGK_Delete::TypeConversion(const char * type)
{
std::cout << type; // it gives the correct type
if (type == "TEXT") return text;
if (type == "BUTTON") return button;
}
我不明白为什么即使我传递了正确的参数,我也没有得到所需的返回值。正如您在第二段代码中看到的那样,我还有一个 cout 命令,它提供输出:TEXT 或 BUTTON(取决于参数)。它仍然没有返回正确的值。我做错了什么?
【问题讨论】:
-
改用 C++ 字符串,它们可以与
==比较。 -
@Biffen 非常糟糕的建议。为什么只需要为字符串比较分配内存?
-
@c-smile 和 C 字符串不需要内存? C++ 字符串有很多的好处,在我看来 OP 可以使用它们。
-
@Biffen 问题一般与字符串无关。这是关于这个特殊签名的特殊功能。
-
@c-smile 如果遵循 你的 逻辑,那么最终的建议是:使用 C。好吧,不能站在这里与一个顽固的 人类作斗争 一整天;我有一个例外要赶上!永远再见(我希望)。