24 Haziran 2017 Cumartesi

smart_ptr

scoped_array Sınıfı
Giriş
Şu satırı dahil ederiz.
#include <boost/scoped_array.hpp>
operator unspecified-bool-type () const
Açıklaması şöyle
Returns an unspecified value that, when used in boolean contexts, is equivalent to get() != 0.
Şöyle yaparız.
bool foo(const boost::scoped_array<int>& bar) {
  return static_cast<bool>(bar);
}

bool foo2(const boost::scoped_array<int>& bar) {
  const bool r = static_cast<bool>(bar);
  return r;
}
scoped_ptr Sınıfı
Giriş
Şu satırı dahil ederiz.
#include <boost/scoped_ptr.hpp>
Açıklaması şöyle
boost::scoped_ptr doesn't allow shared or transfer of ownership
Eğer C++11 kullanıyorsak bu sınıf yerine unique_ptr tercih edilmeli.
Constructor
Örnek 1
Elimizde bir hiyerarşi olsun
class A { virtual ~A() {} };
class B : public A { virtual ~B() {} void foo() {} };
Şöyle yaparız.
boost::scoped_ptr<A> p1(new B);
get metodu
Şöyle yaparız.
B* p2 = dynamic_cast<B*>(p1.get());

shared_array Sınıfı
Giriş
Şu satırı dahil ederiz.
#include <boost/smart_ptr/shared_array.hpp>
Constructor
Şöyle yaparız.
boost::shared_array<uint8_t> val;
shared_ptr Sınıfı
shared_ptr Sınıfı yazısına taşıdım.

Hiç yorum yok:

Yorum Gönder