+ works for string literal also

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • qazmlp

    + works for string literal also

    int main()
    {
    std::string strVal = "2" ;
    strVal = "000" + strVal ;
    }

    I am wondering how the above one compiles well. I expected that, it should be

    int main()
    {
    std::string strVal = "2" ;
    strVal = std::string("00 0") + strVal ;
    }
  • Ron Natalie

    #2
    Re: + works for string literal also


    "qazmlp" <qazmlp1209@red iffmail.com> wrote in message news:db9bbf31.0 306242046.3d6d2 acb@posting.goo gle.com...[color=blue]
    > int main()
    > {
    > std::string strVal = "2" ;
    > strVal = "000" + strVal ;
    > }
    >
    > I am wondering how the above one compiles well. I expected that, it should be
    >[/color]
    An overload for operator+ is provided
    string operator+(const char*, const string& )

    (Not literally, but the above is good enough to understand the issue).

    This means you can mix most operations you can do with strings with char*'s pointing
    at null terminated strings as long as one operand is a string type (obviously no overload
    is possible if both args are pointers).

    "000" + str;
    str + "000"
    str + str;

    are all valid

    "000" + "000"

    is not.


    Comment

    Working...