Typedef for static method
Typedef for static method
是否可以为方法创建一个typedef?我的意思是:
//namespace A{
//namespace B{
Car& Car::getInstance() //static! (sigleton)
{
if(m_instance == nullptr)
{
m_instance = new Car();
}
return *m_instance;
}
//}
//}
// something like:
typedef A::B::Car::getInstance() l_car;
现在:
l_car.fake_method();
溶液?:指向该类型定义之后的函数的指针?
指向静态方法的指针的 typedef:
Car& Car::getInstance()
与常规函数指针相同,如下所示:
typedef Car& (*CarMethod)();
你会像这样使用它:
CarMethod getCar = &Car::getInstance;
//...
Car& theCar = (*getCar)();
不过,我不确定这在单例中有什么用。
typedef
(你可以从名称中猜到)是关于类型,而不是值。但是,您可以这样做
Car& Car::getInstance() {
static Car *p = new Car;
return *p;
}
Car& l_car = getInstance();
但是您无法在第一次使用 l_car
时创建单例实例,当然除了使用宏技巧:
#define l_car (Car::getInstance())
怎么样
A::B::Car& l_car = A::B::Car::getInstance();
相关文章:
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 如何处理 c++ 中类实现中的"invalid use of non-static data member"?
- 通过 get-Method 访问变量在类外不起作用
- 为什么我的 BaseClass:Method 代码编译(带有单冒号)?
- 收到错误"invalid use of non-static data member 'stu::n' "
- LNK1104:无法打开libpjproject-i386-Win32-vc14-Debug-Static.lib
- 我应该在 C++ 中何时/为什么使用 STATIC?
- 如何在 c++ 中理解这样的代码 [request->headers().Method()->value().getStringView())]
- 在VS2019项目中集成ImageMagick:x64-windows-static library
- 如何处理Boost Spirit X3导致Visual Studio 2019 "static initialization order fiasco"?
- "static char __ = []() -> char"的含义
- 当初始值设定项是基类名时'initializer does not name a non-static data member or base class'错误
- 无法在 DLL 中链接 SDL2-static.lib
- 如何摆脱C++中未解析的外部符号"private: static char"错误?
- C++线程"Call to non-static member function without an object argument"
- 出现这种错误的原因是什么"invalid use of non-static data member "
- g++ [[noreturn]] on a virtual method
- Typedef for static method
- 为什么static void method()const是编译错误
- getInstance - Class vs Method static