如何将对象赋值给具有原始指针的矢量中的对象的属性
How to assign an object to a property of an object in a vector with raw pointers?
这个问题可能是一个新手问题,因为我刚刚开始使用c++。但我不知道我做错了什么。我正在做的这个项目是学校的作业。在这个赋值中,我们只允许使用原始指针,因此我们可以了解原始指针是如何工作的。
现在这些原始指针给我带来了一些麻烦。这些指针给了我错误:"不存在从"房间"到"房间*"的合适转换函数"。
为了解释我是如何导致这个错误的,我将试着给出我所写的代码的精简版本。
class Level
{
private:
Room _startRoom;
vector<vector<Room>> _rooms;
};
class Room
{
public:
Room *North;
Room *East;
Room *South;
Room *West;
};
我有一个名为Level的类,这是一个具有向量的类,能够整齐地打印出彼此相邻的房间。并不是每个房间都是连接的,所以我给房间的方向属性与其他房间的连接。但是当我试图生成房间之间的连接时,通过设置_rooms[y][x]。南侧有_rooms[y+1][x]。我得到了错误:'没有合适的转换函数从"房间"到"房间*"存在'。
有人能澄清为什么我得到这个错误信息?
表达式_rooms[y + 1][x]
是Room
实例,而不是指向房间的指针。要获得指向它的指针,需要使用操作符&
的地址:
_rooms[y][x].South = &_rooms[y+1][x];
在一个无关的注意事项上:您记得在您的Level
对象中填充向量吗?
相关文章:
- 类对象属性是否可以调用返回属性应具有的值的方法C++?
- 对象属性同级访问
- 迭代 Napi::对象属性(键)在 Node.js C++ N-API 中
- 是否可以在C++(17)中捕获某些对象属性的破坏性赋值事件
- 分配以下对象属性在哪里
- sutex作为对象属性和对象的向量
- C++ - 在类中包含不是类对象属性的变量是否是一种不好的做法
- 根据对象属性从列表中删除对象
- 将对象属性替换为列表
- 查找对象属性是否位于对象向量C++中
- 未知EABI对象属性44
- 按矢量中的对象属性合并排序
- 如何访问带有静态回调的对象属性
- c++中对象属性的内存分配
- 为什么对象属性的值在 c++ 中将其指针添加到映射后返回零
- 如何检查对象属性更新是否存在 std::map 键,否则插入一个新键?
- 从ASP.NET应用程序查询Active Directory对象属性将返回旧结果
- 性能对象属性与范围变量
- 无法访问对象属性
- 如何从对象方法中访问对象属性