0

我想做类似的事情:

class StrToHex {
public:
    ??? StrToHex(std::string a) {
        return class_method1(a) + class_method2(a);
    }
private:
    std::string method1(std::string a);
    std::string method2(std::string a);
}
int main() {
    std::string var = StrToHex("FF1042");
}

我知道我可以使用 StrToHex::MyFunc() 或创建类对象,但是没有它有什么办法吗?

4

1 回答 1

1

在 C++ 中,构造函数不能返回值。因此,您不能为构造函数指定返回类型。但是还有其他替代方法可以实现相同的目标。我在这里使用了 std::string 转换运算符。

class StrToHex {
public:
StrToHex(std::string a) {
    _data = method1(a) + method2(a);
};

operator std::string()
{
    return _data;
};
private:
std::string method1(std::string a)
{
    return std::string("Hi " + a);
};

std::string method2(std::string a)
{
    return std::string(" again " + a);
};

std::string _data;
};

int main() {
std::string var = StrToHex("FF1042");
std::cout << var;
}

我希望它有帮助!

于 2020-05-04T18:21:27.647 回答