似乎无法在C ++中正确地将对象添加到数组中

时间:2013-03-09 18:54:20

标签: c++ arrays oop graphics

我主要用Java编程,但我正在学习一门我需要使用C ++的图形课程。我试图创建一个对象数组,以循环它们并将它们绘制到屏幕上,但我不能为我的生活弄清楚如何创建这个数组。我现在有代码,它不会产生任何编译器错误,但它似乎也无法正常工作。以下代码位于Main.cpp类的顶部:

Platform ground("wallstone.tga", 40, 16, 4, 144);
Platform platform1("wallstone.tga", 10, 16, 4, 20);
Platform platforms[2] = {ground, platform1}

当我尝试:fprintf(stdout, "Size of platforms array: %d", sizeof(platforms)/sizeof(Platform));时,它打印出0.0。

我已经尝试了几种创建这个数组的方法,它们似乎都会产生错误或0.0的相同输出,所以我不确定是怎么回事。如果我的代码需要更多,我一定会愿意发布。当然,如果有更好的方法来接近这一点,我很感激。谢谢!

1 个答案:

答案 0 :(得分:3)

看起来你做的一切都是正确的。我唯一的猜测是,您平台上的size_t大于int,因此提供正确的格式说明符(%z而不是%d)可能会解决问题:

fprintf(stdout, "Size of platforms array: %z", sizeof(platforms)/sizeof(Platform));