How do I make this C++ object non-copyable?

前端 未结 10 916
太阳男子
太阳男子 2020-11-28 04:36

See title.

I have:

class Foo {
   private:
     Foo();
   public:
     static Foo* create();
}

What need I do from here to make Fo

10条回答
  •  抹茶落季
    2020-11-28 05:25

    This is what I use:

    /* Utility classes */
    
    struct NoCopy
    {
    public:
        NoCopy() {}
    private:
        NoCopy(const NoCopy &);
    };
    
    struct NoAssign
    {
    private:
        NoAssign &operator=(const NoAssign &);
    };
    
    struct NonInstantiable
    {
    private:
        NonInstantiable();
    };
    
    struct NoCopyAssign : NoCopy, NoAssign
    {
    };
    typedef NoCopyAssign NoAssignCopy;
    

    In your case:

    struct Example : NoCopy
    {
    };
    

提交回复
热议问题