创建别名以实现功能

时间:2017-12-15 00:16:34

标签: c++ alias

我愿意创建一个如下所示的别名:

using window = Window::instance().getWindow();

Window::instance().getWindow()返回指向sf::RenderWindow类型对象的指针,我想缩短铭文以使其更方便使用。

Alias调用会像这样: window->draw(object);
代替: Window::instance().getWindow()->draw(object);

是否可以在C ++中使用?

3 个答案:

答案 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())

但请记住在运算符优先级混乱的情况下将其括起来。