C++ では、定数変数の初期化での数学的な宣言には余分な処理が必要ですか? または、最新のコンパイラは、.exe ファイルを作成するときに、数学計算の結果を変数内に自動的に配置しますか?
例えば:
MyClass::MyClass()
{
const qint32 defaultX = 20;
poButton1 = new PushButton(this);
poButton1->move(defaultX,20);
poButton1 = new PushButton(this);
poButton1->move(defaultX,80);
//...
}
メソッドの使用法 (この場合はコンストラクター) 全体で定数変数 (defaultX) を使用するコードの例です。ここで、開発者が値の由来を伝える方がよい場合があります。
MyClass::MyClass()
{
const qint32 defaultX = 800/2 - 244 + 12 + 32 - 180; //just an example!
poButton1 = new PushButton(this);
poButton1->move(defaultX,20);
poButton1 = new PushButton(this);
poButton1->move(defaultX,80);
//...
}
もちろん、彼はそれをコメントの中に入れることもできますが、彼がこのようにしたいと仮定しましょう (例: 彼は頭が悪い)。問題は、そのクラスのオブジェクトが初期化されているときに、数式全体が計算されるか (余分な処理が必要になるか)、または最新のコンパイラによって .exe が作成されるときに、最初の MyClass コードで見られる最適化されたコードが既に含まれているかどうかです。 ?