C++: string operator overload

后端 未结 3 1210
生来不讨喜
生来不讨喜 2021-01-21 14:00

Can I overload existing function/operator in existing class?

I was trying to do:

#include 
#include 
using namespace std;

         


        
3条回答
  •  太阳男子
    2021-01-21 14:31

    I defer to Benjamin's answer for creating a stream-like interface on a string object. However, you could use a stringstream instead.

    #include 
    
    std::istringstream ss;
    ss << anything_you_want;
    
    std::string s = ss.str(); // get the resulting string
    ss.str(std::string());    // clear the string buffer in the stringstream.
    

    This gives you the stream-like interface you want on a string without needing to define a new function.

    This technique can be used generally to extend the functionality of a string. That is, defining a wrapper class that provides the extended functionality, and the wrapper class also provides access to the underlying string.

提交回复
热议问题