Yüklemede dinamik kitaplığımı çökerten aşağıdaki kurulum yapıyorum.Statik Şablon Üyesi Kilitlenme Sayısı
// in a.hpp
template <unsigned int Size>
class ATemplate : public A
{
public:
ATemplate() : A(Size)
{
init()
};
void init()
{
// does stuff, it crashes here or "before" init() because "this" points to some random memory,...
}
}
// in b.hpp
class B
{
public:
static const int Size = 128;
static ATemplate<Size> Template;
}
// in b.cpp
ATemplate<B::Size> B::Template = ATemplate<B::Size>();
// also crashes like this:
ATemplate<B::Size> B::Template;
Afaik, A ve B arasındaki mirasın burada içe aktarılmaması gerekir, değil mi? Statik nesnelerin başlatılması sırasına göre bir şeyler okudum ama aslında birden fazla statik nesneye sahip olmadığımdan, gerçekten sadece bir tane var, bunun burada önemli olduğunu düşünmüyorum.
Bir fikrin var mı, burada sorun ne olabilir?
Çakma hakkında daha fazla bilgi var mı? – sebap123
Ehm, bu bir erişim ihlalidir ve hata ayıklayıcısından çıkabileceğim şey, işlev başlangıcının bir nesne olmadan çağrılmasıdır. Tüm değişkenler saçma ve "bu" hiçbir şeye işaret eder. –
Statik başlatma sırası fiasco'nun oyuna girip girmediğini merak ediyorum – NathanOliver