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

  • FOSDEM

    FOSDEM

    13 Ocak 2009
  • Jordie Jordan

    Jordie Jorda

    27 Ocak 2008
  • MisterBrightside

    MisterBright

    24 Mart 2006