c++ - 如何创建类方法以返回现有类字段的子字符串(字符串类型)
问题描述
我是 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 对数组。
我希望能够创建一个允许我访问任何部分的方法。
我可以将每个部分创建为字符串数组,但这是浪费空间。
解决方案
您好感谢您的回复。
我确实尝试过,添加 const 将我的错误更改为警告。例程 noe 要么什么都不做,要么崩溃。
我看到的说法是 SubString 函数在堆栈上创建它的结果,然后可以立即重新使用/销毁它。
如果我更改例程以将 SubString 的输出保存到静态字符串中,一切正常。
唯一的问题是数据将在下一次调用时被过度使用。我想我可以创建一个包含 100 个静态字符串的数组并轮流使用它们,也许这样会起作用。(我想我只需要足够处理一条指令中的最大调用量 - 即比较可能使用 2 次调用来完成此操作?)
我在任何地方都看不到 SubString 方法的内部,所以我不知道它是如何工作的。
关于如何实现这一目标的任何更好的想法
我有许多操作字符串的例程,我想返回它们而不必传入缓冲区来实现这一点。
关于如何实现这一目标的任何更好的想法
推荐阅读
- ubuntu - 用 Sed 用回车替换行
- python - 迭代合并多个海量数据帧而不会耗尽内存
- sql - SQL Server中随机选择8行数据,需要优化
- powershell - 作为后台进程在 Powershell 中有效地压缩档案
- android - [Kotlin]在目录中列出文件时,如何仅检索不包括路径的文件名?
- python - 如何比较 Django 中的两个查询集并过滤不完全匹配的查询集?
- android - 为什么我不能在 Android Studio Kotlin 中读/写文本文件
- visual-studio-code - Visual Studio Code:获取 Javascript 对象中的路径
- android - 使用 iframe 在 Ionic 应用程序中访问相机
- node.js - 检查 xstate 机器定义中的 cond 语句