为函数创建别名
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();
我愿意创建一个如下所示的别名:
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();