#property strictclass A
{
A* item;
int num;
public:
A(int p=10){num=p;item=NULL;} ~A(){if(CheckPointer(item)==POINTER_DYNAMIC) delete item;}
A* operator=(A* par){ item = par; return&this; }
A* operator~(){ return item; }
intoperator-(){ return num; }
};
voidOnStart()
{
A a = new A(20);
printf("В автообъекте %i (%i) сохранен динамический объект %i (%i), который он в конце своего цикла сам уничтожает...",&a,-a,~a,-~a);
}
つまり、ポインタの暗黙的な命名を全面的に禁止しようということですか? それを喜ぶ人はここにはあまりいないと思います。
みんなに選択肢を持たせてあげよう。
確かにそういう仕掛けはいらないですね。
まあ、それは言うまでもないことですが。メモリーリークがある
メモリリークとでも言うのでしょうか。これはどうでしょう?)))
メモリリークとでも言うのでしょうか。これはどうでしょう?)))
delete item;
つまり、被写体がそのように扱われることを覚悟していることが前提になるわけです。この可能性を予見している人はどのくらいいるのでしょうか?
つまり、これは対象がこのように扱われることを覚悟していることが前提です。そのような可能性に備えている人は多いのでしょうか?
もし誰かがnewという単語を書いたら、それに対応するdeleteという単語がコードの他のどこにあるのかを正確に知るべきだと思うんだ。
みんなに選択肢を持たせてあげよう。
確かに、そんな芸当は必要ないですね。
すでにMQL4で使っています。言語の構文が 同じなら、その時はどうなるのでしょうか?
このような行為から身を守るために、クラスの中にプライベートメソッドを作ることができます。
クラスオブジェクトに何かを代入する場合、コピー演算子が呼ばれることを先験的に予期しているわけですが。欲しいものは、手に入れる。ポインターかオブジェクトかで何が違うの? クラスの種類は同じです。 左利き用のクラスは一切割り当てられません。そのため、すべてがアイドルボアのように見えてしまうのです。
逆に、ポインターを左側にした場合は、ポインターに何かを代入するのかと思いきや、オブジェクトをコピーしていることが判明しました。
逆に、ポインタを左 側にした場合は、ポインタに何かを代入しているのかと思いきや、オブジェクトをコピーしていることがわかります。
そして、これを禁止してしまうと、本当に必要なときにオブジェクトをコピーすることができなくなります。
その結果、すべてをそのままにしておかなければならない。ただ、意識してやってください。
そして、それを禁止してしまうと、本当に必要な時にそのオブジェクトをコピーすることができなくなります。
結局、そのままにしておくしかないのです。 ただ、意識してやってください。
О!それが最大のポイントです。
ここには、メモリ管理のモードをナビゲートする方法を知っている人がたくさんいるのでしょうか?AUTOMATICとDYNAMICの違いを理解する。
そして、STATICとBASEDについて何か聞いたことがある(これは必要ないのですが)。
そして、それを禁止してしまうと、本当に必要な時にそのオブジェクトをコピーすることができなくなります。
結局、そのままにしておくしかないのです。ただ、意識してやってください。
なぜうまくいかないのか? 必要なものまで減らすために、*や &の 演算子があります。
は どこにあるのですか?