有啥方法可以使变量类型与它所在的类的类型相同,并且是静态的和 const 而不是指针?
Posted
技术标签:
【中文标题】有啥方法可以使变量类型与它所在的类的类型相同,并且是静态的和 const 而不是指针?【英文标题】:Any way to make a variable type the same type as the class it is in and being static and a const and not a pointer?有什么方法可以使变量类型与它所在的类的类型相同,并且是静态的和 const 而不是指针? 【发布时间】:2021-07-24 18:16:17 【问题描述】:我想要一个与它所在的类相同类型的变量。我不想使用指针。我希望它是静态的和常量。我还没有找到一种方法来做到这一点。我也想要一个标识符。
当我使用指针时,我得到了所谓的“内存泄漏”。
我想要什么:
class A
std::string str;
A(std::string str) : str(str)
static const A b("hi");
【问题讨论】:
要么需要将声明和定义分开,要么标记定义inline 实际上我不确定您是否可以在类定义中直接使用inline static const
,因为此时A
是一个不完整的类型。但是你仍然可以do this有一个单独的定义
你想改造单身人士吗?
感谢@NathanPierson,帮了大忙!
现在我明白了,内联说明符只允许在函数上使用
【参考方案1】:
怎么样
class A
std::string str;
A(std::string str) : str(str)
static const A& getA()
static const A b("hi");
return b;
这可能是一个解决方案,具体取决于您的需求。
【讨论】:
以上是关于有啥方法可以使变量类型与它所在的类的类型相同,并且是静态的和 const 而不是指针?的主要内容,如果未能解决你的问题,请参考以下文章
delphi中覆盖override父类的静态方法和虚函数有啥不同?