Hatalar, hatalar, sorular - sayfa 1816

 
Mist13 :

İşaretçilerin nesnelere yanlış (bence) davranışıyla karşı karşıya kaldı.

MQL hatasına benziyor.

Bir hatan var. Bir çocuğa boş bir ebeveyn atamayı nasıl hayal ediyorsunuz?

 
fxsaber :

MQL hatasına benziyor.

Bir hatan var. Bir çocuğa boş bir ebeveyn atamayı nasıl hayal ediyorsunuz?

Tıpkı boş olmayan gibi. baseObj1 , soyundan gelen sınıfın bir nesnesine yönelik bir işaretçi içerir. delete(obj1) öğesini kaldırırsanız, son satırdaki atama herhangi bir soruna neden olmaz - işaretçi türleri eşleşir. İşaretçi tarafından atıfta bulunulan nesne silinirse, atamanın aynı şekilde gitmesi gerektiğini düşünüyorum. Ve kesinlikle "Geçersiz işaretçi erişimi" hatası olmamalıdır - uzak bir nesneye erişme girişimi yoktur.
 
Mist13 :
Tıpkı boş olmayan gibi. baseObj1 , soyundan gelen sınıfın bir nesnesine yönelik bir işaretçi içerir. delete(obj1) öğesini kaldırırsanız, son satırdaki atama herhangi bir soruna neden olmaz - işaretçi türleri eşleşir. İşaretçi tarafından atıfta bulunulan nesne silinirse, atamanın aynı şekilde gitmesi gerektiğini düşünüyorum. Ve kesinlikle "Geçersiz işaretçi erişimi" hatası olmamalıdır - uzak bir nesneye erişme girişimi yoktur.
Bu, kodunuzun bir parçasıdır
obj2 = baseObj1; //Пока не грохнули объект - no problem
Sizin açınızdan mimari olarak nasıl yapılabilir?
 
       obj2 = dynamic_cast <B *>( baseObj1 ); //нормально
Böyle bir döküm, eğer mümkünse, sadece alttaki nesne mevcutsa mümkündür.
 
Ve güncellemeden sonra piyasaya dosya nasıl yüklenir?
 
fxsaber :
Bu, kodunuzun bir parçasıdır
obj2 = baseObj1; //Пока не грохнули объект - no problem
Sizin açınızdan mimari olarak nasıl yapılabilir?

Görünüşe göre, baseObj1 tarafından başvurulan nesne türünün obj2 işaretçisinin türüne uygunluğunun kontrolü tetikleniyor. Burada iki seçenek var:

1) İşaretçinin kendisi, nesnenin türünü içeren karmaşık bir yapı olabilir.

2) Nesnenin türünü öğrenmek için başvururuz.

Görünüşe göre 2 numaralı davamız var ve onunla yaşamak zorunda kalacağız. Yönlendirici sorular için teşekkürler)

 

Kaspersky, geçen hafta güncelleme yapmaya çalışan terminale bağırıyor.

 
fxsaber :
Bu, kodunuzun bir parçasıdır
obj2 = baseObj1; //Пока не грохнули объект - no problem
Sizin açınızdan mimari olarak nasıl yapılabilir?

Tıpkı buradaki gibi

class A {};
class B : public A {};
class C : public B {};
void OnStart ()
{
        B *b = new B;
         delete b;
        B *c = b;
        b = new C;
        A *a = c;
         Print ( a, ":" , b, ":" , c );
}
 
A100 :
Tıpkı buradaki gibi
class A {};
class B : public A {};
void OnStart ()
{
        B *b1 = new B;
        A *a = b1;    
         delete b1;
        B *b2 = b1;
        b1 = new B; //уже другой объект
        a = b2;     //
         Print ( a, ":" , b1, ":" , b2 );
}
Ve nerede?
b1 = a;
 
vladavd :

Kaspersky, geçen hafta güncelleme yapmaya çalışan terminale bağırıyor.

panik yok!))

her şey temiz, inşa 1545. Kashpirovsky dahil her şeyin temiz olduğunu söylüyor
https://www.virustotal.com/ru/file/2c3bf04666714cfac26e6e1c0fe355c6081554a0c2a15434849b0a5c241c95b0/analysis/1487685060/








Antivirus scan for 2c3bf04666714cfac26e6e1c0fe355c6081554a0c2a15434849b0a5c241c95b0 at 2017-02-21 13:51:00 UTC - VirusTotal
  • www.virustotal.com
Condensed report! The following is a condensed report of the behaviour of the file when executed in a controlled environment. The actions and events described were either performed by the file itself or by any other process launched by the executed file or subjected to code injection by the executed file. Opened files C:\Documents and...