struct A
{
int x[];
};
//+------------------------------------------------------------------+A myfunc(constint size)
{
A result;ArrayResize(result.x, size);
for(int i = 0; i < size; i++) result.x[i] = i + 1;
return(result);
}
//+------------------------------------------------------------------+voidOnStart()
{
A a;
a = myfunc(5);
A b;
b = a; // скопировали
b.x[0] = 99; // изменили 1-й элемент, чтобы убедиться, что это копия а, а не ссылка как в C#ArrayPrint(a.x);
ArrayPrint(b.x);
}
//+------------------------------------------------------------------+
struct A
{
int x;
int y;
A operator=( const A& a )
{
x = a.x;
y = a.y;
returnthis;
}
};
voidOnStart()
{
A a,b,c;
a.x = 1;
a.y = 2;
b = a;
c = a;
b = c = a;
}
SZS:あなたの記事はほとんど常に合理的ですが、材料のプレゼンテーション、よく、正確に善意ではなく、もちろんあなたのビジネスが、イミフ、あなたが助けたい - 助け、賢くなりたい、まあ、それはしばしばそのように判明する。
と思わせるようなピッチで...。コードを考えるようになったと書かれていますが、以前は思いつきでコーディングしていたのに...。
と思わせるようなピッチで...。を考え始めたと書いていますが、それ以前は慌ててコーディングしていましたね。
ふむまあ、私はドジを踏んだことはないんですけどね(笑)。- じょうだんじゃない
SZZY:私が定期的にトピックを更新するのは、無知だからでも、自分で資料が見つからないからでもなく、その意見に興味を持ったエージェントがいるからです ;)
ZSYS:通信の結果 - むしろ修飾子を使用する理由を再考し、なぜ我々は取得/セットを必要とする - それは書かれたコードをテストし、コンパイラの巧みな使用で、開発の段階で時間を節約することはすぐに成功するでしょう - ここでは本当にトピック内の資産だった目を開き、もう一度、ありがとうございました
以下はその一例です。
あなたのコードからは、何のためのインターフェースなのかがわからないので、捨てました。
もちろん、あなたのタスクを完全に把握しているわけではありませんが、99.99%の確率で必要ありません。
悪い...
あの...ぼけっと書いたことないんですけど!?- じょうだんじゃない
SZZY:私がこのトピックを定期的に更新するのは、無知からでもなく、自分で資料を見つけられないからでもなく、私が興味を持った意見を持つアセッサーがいるからです ;)
SZZY:通信の結果 - むしろ修飾子を使用する理由を再考し、なぜ我々は/セットを取得する必要があります - それは書かれたコードをテストし、コンパイラの巧みな使用で、開発段階での時間を節約することはすぐに成功するでしょう - ここでは本当にトピック内の資産だった目を開き、もう一度、ありがとうございます
勉強になったようで、とてもよかったです。でも、StroustrupのC++を読めば、もっともっと上達しますよ。
でも、Habraに関する記事や様々な動画は読まない方が良いですよ。そこに誰でも書き込むことができる。あなたを混乱させるだけです。
という疑問が湧いてきました。
ボタンが並んだパネルがあり、それぞれのボタンが何らかの機能を実行します。ボタンの一つを押して呼び出される関数、仮にExit 1とします、は別のクラスCExit 1に置きます。
しかし、これらの関数は、いくつかのグローバル変数や 他のオブジェクトのメソッドを使用しています。
大きなプロジェクトに参加したことはない。専門家の意見を聞きたいのですが、どうすれば正しくできるのでしょうか?
私は、mq4ファイルをコンパイルすると、すべてのクラスとインクルードファイルがエラーなくロードされ、EAが正常に動作するようにプログラミングすることがよくあります。しかし、クラスを個別にコンパイルすると、一部の外部変数や関数が表示されないため、警告が表示されます。
ここで質問です。クラスは、エラーなくコンパイルされなければならないのでしょうか?つまり、EAのグローバル変数やオブジェクト参照など、使用するすべてのコピーを含んでいなければならないのでしょうか?その場合、いつ頃がベストなのでしょうか?相互作用するオブジェクトがたくさんある場合、どのように並べれば混乱が少ないか?プログラムが増殖した場合、ダイアグラムを作成するのでしょうか?
オブジェクトを使った作業の書き方や実装方法を共有する。
という疑問が湧いてきました。
ボタンが並んだパネルがあり、それぞれのボタンが何らかの機能を実行します。ボタンの一つを押して呼び出される関数、仮にExit 1とします、は別のクラスCExit 1に置きます。
しかし、これらの関数は、いくつかのグローバル変数や 他のオブジェクトのメソッドを使用しています。
大きなプロジェクトに参加したことはない。専門家の意見を聞きたいのですが、どうすれば正しくできるのでしょうか?
私は、mq4ファイルをコンパイルすると、すべてのクラスとインクルードファイルがエラーなくロードされ、EAが正常に動作するようにプログラミングすることがよくあります。しかし、クラスを個別にコンパイルした場合、一部の外部変数や関数がクラスから見えないため、警告が表示されることがあります。
という疑問があります。クラス自体がエラーなくコンパイルできること、つまり、グローバル変数やオブジェクトへの参照など、使用されているすべてのコピーをすでに含んでいることが必要なのでしょうか?その場合、いつ頃がベストなのでしょうか?相互作用するオブジェクトがたくさんある場合、どのように並べれば混乱が少ないか?プログラムが増殖した場合、ダイアグラムを作成するのでしょうか?
オブジェクトを使った作業の書き方や実装方法を共有する。
プラットフォーム固有のものを除いたグローバル変数や統計は邪道です。そして、すべてのエンティティ(クラスのグループ)は隔離され、プロトコル(インターフェイスのそれ)に従って互いに通信しなければならず、それ以外の何ものでもありません。
もちろん、これが理想です :-)実生活では、自分の企画、アイデア、スタイルを知っている人はいないので、自分で判断し、自分でサポートします。
1. なぜ、コンパイルができない のか?
2. operator= , を記述して、その中でネイティブのコピー演算子を使うハックはないのでしょうか?すなわち、::=を 呼び出す何らかの方法です。
1.なぜ、コンパイルができないのか?
2. operator= , を記述して、その中でネイティブのコピー演算子を使うハックはないのでしょうか? ....すなわち、::=を 呼び出す何らかの方法です。
1) MQLのデフォルトの代入演算子は、voidデータ型を 返します。
2)このようなことができます。
1) MQLのデフォルトの代入演算子は、voidデータ型を 返します。
は同意しない。
2020.04.18 18:54:03.855 tst (EURUSD,H1) 1 2 3 4 5
2020.04.18 18:54:03.855 tst (EURUSD,H1) 99 2 3 4 5
明らかにデフォルトの代入演算子は完全なデータ型を 返し、コピーを作る、あるいはどのようなvoidについて話しているのでしょうか?
2. 例は良いのですが、デフォルトのコピー演算子による配列構造でのコピーの可能性を残したいのです。
デフォルトの代入演算 子は明らかに完全なデータ型を返して コピーを作っている、とか、どこのボイドだ?
間違っている。
これを返すoperator=を定義するだけで、その違いがわかるはずです。
課題の結果が再度割り当てられたときに見ることができます。