为函数创建别名

Creating alias to function

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

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

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

别名调用应该是这样的: window->draw(object);
代替: Window::instance().getWindow()->draw(object);

在 C++ 中可以吗?

如果您完全确定返回的指针在两次调用之间没有变化,您可以暂时保存它:

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

另一个糟糕的❌方法是使用宏:

#define window (Window::instance().getWindow())

但请记住将其括起来以防运算符优先级混乱。

您可以使用 auto: 所以而不是

Window::instance().getWindow()->draw(object);

你将拥有:

auto* window = Window::instance().getWindow();
window->draw(object);

using 仅适用于类型和名称空间。你想要的是一个简单的指针变量:

sf::RenderWindow *window = Window::instance().getWindow();

可以在 C++11 及更高版本中使用 auto 缩短:

auto *window = Window::instance().getWindow();