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

时间:2015-10-21 07:48:50

标签: c++ static sfml members

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

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

我刚刚将sf :: Texture声明为brick类的成员。问题是纹理是一个,我不想每次创建砖类的新实例时加载它或为它分配内存。我想在代码中只创建一次,而不是在其他地方更改它。所以我想我可以让它变得静止。 由于SFML中的纹理也是一个类,我遇到了一些神秘的东西:

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

PS:这可能是你读过的最糟糕的描述。事实是我无法向任何人描述任何事情。总是有更多的谈论事实等等。希望你理解我的问题。

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解你的问题,但回答你的一般问题“如何调用类的方法,这是另一个类的静态成员”看起来像下面的粗略代码:

#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;
}