Yığın ayrılan nesneler için shared_from_this çağrısı nedir? Temel sınıflar listesindeki enable_shared_from_this, yalnızca yığın üzerinde oluşturma için türetilmiş sınıfın kullanıcısıdır (ve doğru sınıf kullanımı için umuyoruz) veya bu tür hatalara karşı daha güçlü bir koruma sağlayabilir miyiz? Ya da bazı anları anlamıyorum?
örnek kod: Eğer gizli contstructors yapabilir ve yalnızca Shared_ptr dönmek oluşturma işlevlerini sağlayabilir bu soruna karşı korumak için Yani enable_shared_from_this ve yığıntaki nesneler
class C : public enable_shared_from_this<C> { public: shared_ptr<C> method() { shared_from_this(); } };
void func() { C c; shared_ptr<C> ptr = c.method(); // exception comming from shared_from_this() }
Tam olarak ne soruyorsunuz? Yığın-ayrılmış nesneler üzerinde 'shared_from_this()' işlevini engellemenin bir yolu olup olmadığını bilmek ister misiniz? –