【问题标题】:Overloading conversion operator from int to std::string [duplicate]将转换运算符从 int 重载到 std::string [重复]
【发布时间】:2018-04-25 08:54:57
【问题描述】:

是否可以将转换运算符从 int 重载到 std::string?是否可以使用此功能:

void printToLog(std::string text);

像这样:

int a = 5;
printToLog(a);

或者这个:

int a = 5;
printToLog(a + " bombs have been planted.");

?

【问题讨论】:

    标签: c++ operator-overloading std


    【解决方案1】:

    标准库中有一个函数。恰如其分地命名为std::to_string

    int a = 5;
    printToLog(std::to_string(a) + " bombs have been planted.");
    

    您不能为此添加转换运算符。这样的运算符只能是类类型的成员,int 不是类类型。您也不能将转换构造函数添加到std::string。使用标准为您提供的机制。

    【讨论】:

    • 我知道,但我在问:是否可以将转换运算符从 int 转换为 std::string?
    • @lollypap54 - 不。为什么要这样做?为了避免一些打字?这是一个糟糕的理由。
    • 嗯,是的,这对于这个确切的目的来说是非常糟糕的,但有时你只是想知道:这可能吗? ://
    • @lollypap54 - 就像我已经说过的。没有。
    猜你喜欢
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 2012-01-23
    • 2011-03-31
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多