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

  • MatheusDosGames

    MatheusDosGa

    28 Aralık 2011
  • MuscleProdigyTV

    MuscleProdig

    8 Ocak 2011
  • taliajoy18

    taliajoy18

    12 Temmuz 2011