我在函数外返回字符串时遇到问题。在此之前是否应该进行某种转换?

我在课外使用公共(public)const int val_int[ ]const char* val_rom[ ]

和内部类:

private:
    char* roman;

public:
    char arab2rzym(int arabic) throw (RzymArabException){
        if( arabic < 0){
            throw RzymArabException(arabic + " is too small");
        }
        else if(arabic > 3999){
            throw new RzymArabException(arabic + " is too big");
        }
        std::string roman;

        for(int i=12; i>=0; i--){
            while(arabic>=val_int[i]){
                roman.append(val_int[i]);
                arabic-=val_int[i];
            }
        }
        return roman;

    }

最佳答案

您是否可以将方法的签名更改为:

std::string arab2rzym(int arabic)

如果是这样,则可以在实际需要的地方使用它。

无论如何,我建议您研究std::string reference,尤其是operator[]c_str()方法。

10-06 04:53