SORU
31 Ocak 2010, Pazar


Nasıl bu C olmayan copyable nesne yapabilirim?

Başlık bakın.

Var:

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

Ben buradan Foo un-copyable yapmak için ne lazım?

Teşekkürler!

CEVAP
31 Ocak 2010, Pazar


class Foo {
   private:
     Foo();
     Foo( const Foo& other ); // non construction-copyable
     Foo& operator=( const Foo& ); // non copyable
   public:
     static Foo* create();
}

Eğer boost kullanıyorsanız, aynı zamanda noncopyable devralır : http://www.boost.org/doc/libs/1_41_0/boost/noncopyable.hpp

EDİT: eğer derleyici bu özelliği destekleyen varsa C 11 sürüm:

class Foo {
   private:
     Foo();
     Foo( const Foo& other ) = delete; // non construction-copyable
     Foo& operator=( const Foo& ) = delete; // non copyable
   public:
     static Foo* create();
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
C++

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Howcast

    Howcast

    4 EKİM 2007
  • krotoflik

    krotoflik

    26 ŞUBAT 2011
  • trickycharms

    trickycharms

    6 Aralık 2013