如何创建一个类方法来返回现有类字段的子串(字符串类型)?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何创建一个类方法来返回现有类字段的子串(字符串类型)?相关的知识,希望对你有一定的参考价值。
我是一个自学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]); ;
;
构造函数将接受一个提供的文件路径 并创建一个StartPosLength对的数组来定义文件名的每一部分。
我希望能够创建一个方法,允许我访问任何部分。
我可以将每个部分创建为字符串数组,但这很浪费空间。
看一下下面的声明 String::SubString
并重复返回类型
const String& GetPathPart(int i)
return Path.SubString(StartPos[i], Length[i]);
你好,谢谢你的回复。
我确实试过了,添加const后,我的Error变成了警告。该例程要么什么也不做,要么崩溃。
我看到的是SubString函数在Stack上创建了它的结果,然后可以立即重新使用销毁。
如果我改变例程,将SubString的输出保存为静态字符串,一切都能正常工作。
唯一的问题是,数据在下一次调用时将会过期。我想我可以创建一个由100个静态字符串组成的数组,然后轮流使用它们,也许这样就可以了。(我想我只需要足够的数据来处理一个指令中的最大调用量--即一个比较可能需要2次调用来完成?)
我看不到SubString方法内部的任何地方,所以我不知道它是如何工作的。
有什么更好的办法来实现这个目标吗?
我有很多例程可以处理字符串,我想在不传递缓冲区的情况下返回它们。
有什么更好的办法来实现这个目标吗?
以上是关于如何创建一个类方法来返回现有类字段的子串(字符串类型)?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Linq to XML 创建基于类/模型的现有对象 - 工作,但有更好的方法吗?
如何在Python中创建一个递归函数来创建一个映射Odoo 8关系字段记录的字典?