有啥方法可以使变量类型与它所在的类的类型相同,并且是静态的和 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父类的静态方法和虚函数有啥不同?

常见的构造函数类型

java接口和类有啥区别?

IntelliJ IDEA在使用的时候,有啥方便快捷的技巧吗?

java引用数据类型(类)

c++,类的问题。private类型的是否只有类自己可以使用?与protect类型的有啥区别