如何创建一个类方法来返回现有类字段(字符串类型)的子字符串



我是一个自学成才的C&C++,但我现在已经习惯了Unicode字符串等。。。!

使用C++,我试图向类中添加一个方法,以返回现有class字段的子字符串。编译器不允许我返回子字符串,因为它是"临时的"。我该怎么做?,也许是在某种宏转换中?

部分类别定义:

#define TFTWDATA_MAXPARTS 20
class TFtwData {
private:
public:
__fastcall          TFtwData(intiLevel, String   iPath);
__fastcall          ~TFtwData();
int       Level;      // Depth
String    Path;       // Full Path of This File
int      StartPos[TFTWDATA_MAXPARTS];
int      Length  [TFTWDATA_MAXPARTS];
String & GetPathPart(int i) { return Path.SubString(StartPos[i],Length[i]); } ;
};

构造函数将采用提供的文件路径,并创建一个StartPos/Length对数组,定义文件名的每个部分。

我希望能够创建一个方法,允许我访问任何部分。

我可以将每个部分创建为字符串数组,但这是浪费空间。

查看String::SubString的声明并重复返回类型

const String& GetPathPart(int i) {
return Path.SubString(StartPos[i], Length[i]);
}

嗨,谢谢您的回复。

我确实尝试过,添加const将我的Error更改为警告。常规noe要么什么都不做,要么崩溃。

我看到的是,SubString函数在Stack上创建了它的结果,然后可以立即重新使用/销毁。

如果我更改例程以将SubString的输出保存为静态String,那么一切都正常

唯一的问题是下一次调用时数据会被忽略。我想我可以创建一个由100个静态字符串组成的数组,并在旋转中使用它们,也许这会奏效。(我想我只需要足够的时间来处理一条指令内的最大调用量,即一个比较可能需要2个调用来完成这项任务?(

我在任何地方都看不到SubString方法的内部,所以我不知道它是如何工作的。

如何实现的任何更好的想法

我有很多处理字符串的例程,我想在不需要传递缓冲区的情况下返回它们来实现这一点。

如何实现的任何更好的想法

相关内容

  • 没有找到相关文章

最新更新