c++ - 使用智能指针将“this”传递给类的最佳实践
问题描述
我有一个特定格式的文件,它代表一个文件系统。此外,我有一个名为“FS”的类,它解析上述文件,并构建一个文件数组。它看起来像这样:
class File
{
friend FS;
private:
FS * fs;
public:
File(FS *fs) : fs(fs) {
...
}
void readFile() {
fs->readSector(...);
}
}
class FS
{
private:
std::vector<File> files;
int readSector(...) {
...
}
void parse() {
for (...) {
readSector(...);
}
}
public:
File getFileByName(...) {
return File(this);
}
}
- 将“this”传递给“File”类的最佳方法是什么?
- 我应该使用智能指针吗?如果是这样,在这种情况下我应该如何使用它们?如果我确实使用了它们,如果我使用“new”运算符创建一个“FS”实例,但在内部我会使用“this”的智能指针,会发生什么?
- 在这里使用“朋友”吗?
解决方案
推荐阅读
- javascript - 有没有办法在 iOS Safari 全屏模式下隐藏关闭按钮?
- php - 用两个字段 MYSQL 填充列表框
- php - PHP 密码验证在 MySQLi 中无法正常工作
- .net - 如何保留订阅用户的权利
- python - Django Forms - DateInput 没有从实例中填充
- python - 减少 Python 中 2 个列表之间的余弦相似度计算的运行时间
- javascript - 如何在react redux中映射对象数组
- scala - 提升类型上的模式匹配(Slick Lifted Embedding)
- django - Django Rest Framework 多张图片上传:需要一个字典,但得到了 InMemoryUploadedFile
- python - 搜索目录和删除文件的问题