我在函数外返回字符串时遇到问题。在此之前是否应该进行某种转换?
我在课外使用公共(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()
方法。