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

  • BigDawsVlogs

    BigDawsVlogs

    17 HAZİRAN 2013
  • Helen Bradley

    Helen Bradle

    4 Mart 2008
  • Roger Huffman

    Roger Huffma

    4 ŞUBAT 2007