繁体   English   中英

初始化是另一个类对象的静态类成员

[英]Initializing static class member which is another class object

我是这个论坛的新手,我的问题也可能像新手一样。

具体来说:我正在SFML库(语言:C ++)中开发一个简单的2D游戏。 会有一个呈现砖块的物体。 这可能无关紧要。 我希望砖块在屏幕上看起来一样,所以我只为它们制作了一种纹理。 这是我的问题:

我刚刚声明了sf :: Texture作为Brick类的成员。 问题是纹理是一个纹理,我不想每次创建砖类的新实例时都为其加载或分配内存。 我只想在代码中创建一次,而不在其他任何地方进行更改。 所以我认为我可以使其静止。 由于SFML中的纹理也是一门课,因此我遇到了种种神秘感:

有方法LoadFromFile()。 我想调用它来加载我的纹理。 如何调出该类的方法,该方法是另一个类的静态成员。

PS:这可能是您读过的最糟糕的描述。 事实是我无法向任何人描述任何东西。 总是比事实多说话。希望您理解我的问题。

我不确定我是否理解您的问题,但可以回答您的一般问题“如何调用属于另一个类的静态成员的类的方法”,看起来像下面的原始代码:

#include <iostream>

class A 
{
   public:
   void printStr() { std::cout << "This is from A" << std::endl; };
};

class B
{
   public:
   // Static member declaration.
   static A a;
};

// Define a
A B::a;

int main()
{
   B::a.printStr();
   // or
   B b;
   b.a.printStr();
   return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM