我愿意创建一个如下所示的别名:
using window = Window::instance().getWindow();
Window::instance().getWindow()
返回指向sf::RenderWindow
类型对象的指针,我想缩短铭文以使其更方便使用。
Alias调用会像这样:
window->draw(object);
代替:
Window::instance().getWindow()->draw(object);
是否可以在C ++中使用?
答案 0 :(得分:2)
您可以使用auto
:
所以而不是
Window::instance().getWindow()->draw(object);
你将拥有:
auto* window = Window::instance().getWindow();
window->draw(object);
答案 1 :(得分:1)
using
仅适用于类型和命名空间。你想要的是一个简单的指针变量:
sf::RenderWindow *window = Window::instance().getWindow();
可以使用auto
在C ++ 11及更高版本中缩短:
auto *window = Window::instance().getWindow();
答案 2 :(得分:0)
如果你完全确定返回的指针在两次调用之间没有变化,你可以暂时保存它:
auto window = Window::instance().getWindow();
另一种bad❌方法是使用宏:
#define window (Window::instance().getWindow())
但请记住在运算符优先级混乱的情况下将其括起来。