字符串连接与整数

pig*_*d10 0 c++ string integer concatenation

Damage并且Cost是整数,但正如您在下面的代码中看到的,我想用字符串连接它们(如果这是正确的单词).我怎样才能做到这一点?

class Weapon : Shopable{
    private:
        int Damage;
    public:
        std::string getDesc() const{
            return getName()+"\t"+Damage+"\t"+Cost;
        }
};
Run Code Online (Sandbox Code Playgroud)

小智 7

提供此模板:

#include <sstream>

template <class TYPE> std::string Str( const TYPE & t ) {
    std::ostringstream os;
    os << t;
    return os.str();
}
Run Code Online (Sandbox Code Playgroud)

然后你可以说:

return getName() + "\t" + Str( Damage ) + "\t" + Str(Cost);
Run Code Online (Sandbox Code Playgroud)

请注意,这几乎等同于Boost lexical_cast,以及即将推出的标准中的类似设施.另请注意,此功能为了方便和类型安全而交易性能.