問題タブ [new-operator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 準備された「select * from」テキストを使用して管理スタジオで新しいクエリ ウィンドウを開く
新しいクエリを作成するときに新しいテンプレートを作成するために、SQLFile.SQL を "select * from" として編集しました。しかし、まだ空白のウィンドウがあるようです....
何が問題ですか?
c++ - C++でのメモリ割り当て
「new」演算子を使用して任意のメモリブロックを割り当てることは可能ですか?CIでは、「void * p = malloc(7);」のように実行できます。-メモリアライメントが1バイトに設定されている場合、これは7バイトを割り当てます。新しい演算子を使用してC++で同じものを作成するにはどうすればよいですか?
c++ - C ++で実行時に決定された可変長の配列を宣言するにはどうすればよいですか?
このコードをチェックしてください。コンパイルされ、完全に正常に実行されます。問題は、c ++(turbo c ++)の学習を開始したとき、どのタイプの配列も..として宣言できなかったことです。
そして私はこれが最新のgccコンパイラでは不可能であることを当然のことと思っていました...しかし驚くべきことにこれは可能です...
だから私の関連する質問は、新しいオペレーターの必要性は何ですか?
new演算子は、実行時にヒープ内で動的にメモリを割り当てる、そのリソースにアドレスを返すなど、多くのことを行うことを知っています。
私が感じる違いは、私のコードが動的にメモリをスタックに割り当て、新しいものがヒープに割り当てることです。これが唯一の違いです...
私はc++を学び始めたときにこれを行うことができなかったので、このようなものを書いた後、本当に驚いています...それに追加するために、カスタムデータ型に対してもこれを行うことができます...:-O
少し光を当ててください。
ありがとう。
c++ - C++ new int[0] -- メモリを割り当てますか?
簡単なテストアプリ:
出力:
だからそれはうまくいくように見えます。これについて標準は何と言っていますか?メモリの空のブロックを「割り当てる」ことは常に合法ですか?
c++ - C ++演算子の新規、オブジェクトバージョン、および割り当てサイズ
オブジェクトのさまざまなバージョン、それらのサイズ、および割り当てについて質問があります。プラットフォームはSolaris8(およびそれ以降)です。
すべて共有ライブラリDにリンクするプログラムA、B、およびCがあるとします。あるクラスがライブラリDで定義されているので、それを「classD」と呼び、サイズを100バイトと仮定します。ここで、既存のバイナリBまたはCに影響を与えずに、プログラムAの次のバージョンのclassDにいくつかのメンバーを追加します。新しいサイズは、たとえば120バイトになります。プログラムAでclassDの新しい定義(120バイト)を使用し、プログラムBとCで引き続きclassDの古い定義(100バイト)を使用する必要があります。A、B、およびCはすべて、演算子「new」を使用してDのインスタンスを作成します。
問題は、オペレーターが「新規」に割り当てるメモリの量をいつ知るのかということです。コンパイル時または実行時?私が恐れていることの1つは、プログラムBとCはclassDが100バイトであることを期待しているのに対し、新しい共有ライブラリDはclassDに120バイトを必要とし、この不整合により、プログラムBとCを新しいライブラリD。言い換えると、新しいclassDが必要とする余分な20バイトの領域は、プログラムBおよびCによって他の変数に割り当てられる可能性があります。この仮定は正しいですか?
ご協力いただきありがとうございます。
oop - 論理的な理由に基づいて、virtual 修飾子と new 修飾子は、継承とポリモーフィズムの問題で異なる結果をもたらしますか?
独自の基本クラスに仮想関数がある場合、派生クラスでそれをオーバーライドし、変数宣言時にキャストを検討することで、派生クラスで new 修飾子を使用する場合と比較して異なる結果になることを知っています。しかし、なぜ?それには論理的な理由がありますか、それとも理由もなく学ばなければなりませんか?
c# - 新しい(修飾子)関数の実用的な使用法は?
新しい(修飾子)関数の実際の使用法は何ですか?
java - Java でのすべてのオブジェクト作成をアサートする必要がありますか?
明白な答えを持つばかげた質問のように聞こえます:)
それでも私は、二重に確信を持って尋ねることを敢えてしました。
実際に以下のようなアサートを使用しています
問題は、アサーションに関する小さくてシンプルなドキュメントを作成するのが難しいことです。アサートに関する本はたくさんありますが、新しいプログラマーにアサートのようなものを使用するための非常に簡単なガイドラインを提供するのが理想的です。ところで、pmd のようなツールはアサートの適切な使用をチェックしますか?
前もって感謝します。
c++ - 新しい演算子を正しく使用していますか?
次のポインタがあります。
x はポインターの配列を指します。次のコードは正しいですか?
を使用して割り当てを解除します
は
と
同等?
c++ - デストラクタを呼び出してからコンストラクタを呼び出します(オブジェクトをリセットします)
オブジェクトをリセットしたい。次のようにできますか?
このコードは明らかに、新しい配置で割り当てられたオブジェクトの典型的なライフサイクルのサブセットです。
変更されたのは、コンストラクタとデストラクタの呼び出しの順序だけです。
では、なぜ次のFAQ にすべての脅威が表示されるのでしょうか。
[11.9]しかし、オブジェクトにnewを割り当てた場合、デストラクタを明示的に呼び出すことはできますか?
FAQ:オブジェクトが新しい配置で割り当てられていない限り、できません。newによって作成されたオブジェクトは削除する必要があります。これにより、2つのことが行われます(覚えておいてください)。デストラクタを呼び出してから、メモリを解放します。
FQA:変換:削除は、デストラクタを明示的に呼び出す方法ですが、メモリの割り当てを解除する方法でもあります。メモリの割り当てを解除せずにデストラクタを呼び出すこともできます。ほとんどの場合、醜くて役に立たないですが、それは可能です。
デストラクタ/コンストラクタの呼び出しは、明らかに通常のC++コードです。コードで使用される保証は、配置の新しい保証から直接生じます。それは標準の核心であり、堅実なものです。どうしてそれを「汚い」と呼び、信頼できないものとして提示することができますか?
newのインプレースメントと非インプレースメントの実装が異なる可能性があると思いますか?私はいくつかの病気の可能性について考えています。たとえば、通常のnewは、ブロックの前に割り当てられたメモリブロックのサイズを置くことができますが、インプレースメントのnewは明らかに(メモリを割り当てないため)行いません。これにより、いくつかの問題のギャップが生じる可能性があります...そのようなnew()の実装は可能ですか?