类对象指针的向量:如何在指针地址获得价值?C 和SDL_RECT

Vector of Class-Object pointers: How to get value at pointer address? C++ and SDL_Rect

本文关键字:指针 SDL RECT 地址 向量 对象      更新时间:2023-10-16

我有一个类对象指针的向量。我在Main中声明了矢量。

std::vector<Class1*> vector1;
vector1.push_back(&object1);
vector1.push_back(&object2);

发生以下错误。这只是尝试访问向量指向的类中包含的数据的最简单变体。

ex:

main.cpp:

std::cout << vector1[0]->rect->w << std::endl;

class1.h

SDL_Rect rect{100, 100, 50, 50};

上面的结果带有" vector1"一词的红色下划线,其中"表达式必须具有有效的指针类型"。

编辑:

忘了提到我正在尝试到达 sdl_rect 包含在矢量指向的类 - 对象中的 ...不确定如何/是否会更改任何内容。下班时我会提供更多完整的代码。

如果我简单地指定一个常规类型的变量,例如int(下面的"年龄"是int):

 std::cout << vector1[0]->age << std::endl;

但是,由于我在示例中指定了一个sdl_rect。有人知道什么是特殊性?

for(int i = 0; i < vector1.size(); i++)
{
    vector1[i]->width += offset;
}

与往常一样,用->取消指针。