エラー、バグ、質問 - ページ 1816

 
Mist13:

オブジェクトポインタの間違った動作に遭遇したことがある(私の意見)。

MQLのエラーのようです。

エラーが出ていますね。空の親を子孫に割り当てるというのは、どのようなイメージでしょうか。

 
fxsaber:

MQLのエラーのようです。

エラーが出ていますね。空の親を子孫に割り当てるというのは、どのようなイメージでしょうか。

空でないものと全く同じです。baseObj1 には、子孫クラスのオブジェクトへの ポインタが格納される。delete(obj1)を削除しても、最後の行の代入は何の問題も起こりません - ポインタの型は一致しています。ポインタが参照しているオブジェクトが削除された場合、代入は同じように行われる必要があると思います。また、"Invalid pointer access "エラーも発生しないはずです。削除されたオブジェクトにアクセスしようとしたのではありません。
 
Mist13:
空でないのと同じように。baseObj1には、子孫クラスのオブジェクトへの ポインタがある。delete(obj1)を削除しても、最後の行の代入は何の問題も起こりません - ポインタの型は一致しています。ポインタが参照しているオブジェクトが削除された場合、代入は同じように行われる必要があると思います。また、削除されたオブジェクトにアクセスしようとしたわけではないので、「無効なポインタへのアクセス」エラーは発生しないはずです。
あなたのコードのこの部分
obj2 = baseObj1;//Пока не грохнули объект - no problem
アーキテクチャ的にどのような実装が可能なのでしょうか?
 
       obj2 = dynamic_cast<B *>( baseObj1 );//нормально
このようなキャスティングは、可能であれば、ベースオブジェクトが存在する場合にのみ可能です。
削除済み  
また、アップデート後にマーケットにファイルをアップロードするにはどうすればよいのでしょうか?
 
fxsaber:
以下は、あなたのコードのこの部分です。
obj2 = baseObj1;//Пока не грохнули объект - no problem
建築的にはどうなのでしょうか?

どうやら、baseObj1が参照するオブジェクトの型と、ポインタobj2の型が一致するかどうかをチェックしているようです。ここには2つの可能性があります。

1) ポインタ自体は、オブジェクトの型を含む複雑な構造体であってもよい

2) オブジェクトを参照して、その型を調べる必要がある。

これはケース2のようで、それに耐えるしかないでしょう。誘導尋問ありがとうございました )

 

カスペルスキーは先週からアップデートしようとして端末に怒鳴り込んでいます。

 
fxsaber:
あなたのコードのこの部分
obj2 = baseObj1;//Пока не грохнули объект - no problem
建築的にはどうなのでしょうか。

こちらも同様です。

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:
ここと同じようにね。
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 );
}
どこ?
b1 = a;
 
vladavd:

カスペルスキーは先週からアップデートしようとして端末に怒鳴り込んでいます。

焦ってはいけない)

すべてクリア、ビルド1545。カスペルスキーもすべてクリアとのこと。
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...