問題タブ [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.
c++ - 発信者に関する「新しい」データとログ データのオーバーライド
私はメモリプロファイラーを作成しようとしていますが、これまでのところ、カスタム関数を malloc、free、new、delete で機能させることができました。と を使用して、オーバーロードされた new メソッド内でオリジネーターをログに記録しよう__FILE__
と__LINE__
しましたが、(予想どおり) オーバーロードされた関数の場所の詳細が表示されるだけです。テスト対象のコンポーネントの既存のコードを変更せずに、オーバーロードされた関数のオリジネーターに関する詳細を取得する方法はありますか (malloc の #define など)。
私が使用している関数は次のとおりです。
bool b_MemProfStarted は、ofstream と map.insert での再帰呼び出しを避けるために使用されます。
c# - 新規とオーバーライドの違い
次の違いは何ですか?
ケース 1: 基本クラス
ケース 1: 継承されたクラス
ケース 2: 基本クラス
ケース 2: 継承されたクラス
私が実行したテストに基づいて、ケース 1 と 2 はどちらも同じ効果があるようです。違いや好ましい方法はありますか?
c# - C#の新しいキーワードを使用してインターフェイスのプロパティを展開できますか?
「new」キーワードが派生クラスのメソッドを非表示にする方法を理解しています。ただし、キーワードを使用するインターフェイスを実装するクラスにはどのような影響がありますか?
この例を考えてみましょう。ここでは、プロパティを読み取り/書き込みにすることでインターフェイスを拡張することにしました。
次に、次のようなことができます。
これは悪いデザインですか?ICanReadAndWriteを実装するクラスで問題が発生しますか?
編集:これは私がこのようなことをしたいと思うかもしれない理由 の不自然な例です:
IShoppingCartItemReadWriteを返すファクトリクラスがあるとします。次に、価格を操作したり、変更したりするサービスレイヤーを作成できます。次に、これらのオブジェクトをIShoppingCartItemReadOnlyとして、変更されないある種のプレゼンテーションレイヤーに渡すことができます。(はい、技術的に変更できることはわかっています。これは設計上の問題であり、セキュリティなどではありません)
php - 新しく作成されたインスタンスをモックしますか?
TDD を使用していない古いコードがあり、次のような関数のテストを書きたい
私はphpunitと一般的なテストにあまり慣れていないので、私の質問は次のとおりです。DB_PGをモックするにはどうすればよいですか? テストで getMock() を試しましたが、関数は「new」を使用してインスタンスを取得するため、モックオブジェクトは無視されます。これは理にかなっています
だから私は2つのオプションしか見ていません
- 私が知らないphpunitのいくつかの機能 - それが私がここで尋ねる理由です^^
- 私は古いコードを変更する必要があります - 私はそれがより良いと知っています
だから、誰かがオプション1の答えを知っていますか?
thxすべて
c++ - クラスのインスタンスに構造体へのポインタを与える
ベクトルクラスでSSE機能を取得しようとしています(これまでに3回書き直しました。:\)。次のようにしています。
できます!やあ!しかし、それは私の以前の試みよりも遅いです。ブー。
ボトルネックは、構造体へのポインターを取得するために使用しているmallocであると判断しました。
クラスでSSEを使用する際の主な問題の1つは、SSEを機能させるためにメモリ内で整列させる必要があることです。つまり、new演算子とdelete演算子がオーバーロードされ、次のようなコードになります。
デフォルトのコンストラクターを使用できなくなりnew
、疫病のように回避する必要があります。
私の新しいアプローチは、基本的に、クラスの外部にデータを配置して、クラスを整列させる必要がないようにすることです。
私の質問は、構造体の(メモリに整列された)インスタンスへのポインタを取得するためのより良い方法がありますか、それとも私のアプローチは本当にばかげていて、はるかにクリーンな方法がありますか?
api - TFS APIを使用して新しいソースコードブランチを作成するにはどうすればよいですか?
APIを使用して新しいブランチを作成しようとしていますが、との両方を使用していPendBranch()
ますCreateBranch()
。問題CreateBranch()
は、すぐにコミットし、ブランチがチェックインされたときにコメントを追加できるようにすることです。そこで、私が行ったことを以下に示します。
基本的に、マップするサーバーアイテムやローカルアイテムなどのすべての情報と、ブランチのソースとターゲットをWindowsアプリケーションから取得します。
どういうわけか、ソース管理エクスプローラーを表示すると、ワークスペースの作成後に:を指定したにもかかわらず、「マップされていません」と表示されます。workspace.Get()
workspace.Map(serverItem,localItem)
誰かがこれに光を当てることができますか?
inheritance - 基本プロパティを非表示にする派生クラスのシリアル化
私はこのようなクラスを持っています
このクラスをシリアライズしようとすると、次のエラー メッセージが表示されます
タイプのメンバ SQLClientAdapter.Columns は、基本クラス メンバの Adapter.Columns タイプを非表示にします ...新しい名前を指定するには、XmlElementAttribute または XmlAttributeAttribute を使用します。
推奨事項は機能しませんでした。
Google は基本クラスに Ignore() 属性を追加することを推奨しましたが、私は基本クラスを変更できません。
c++ - Linuxの演算子newとbad_alloc
Linuxでは、メモリが不足している場合、mallocは必ずしもnullポインタを返すとは限りません。本当にメモリが不足している場合は、ポインタを取り戻し、OOMキラーにプロセスの実行を開始させることができます。同じことがC++の演算子newにも当てはまりますか、それともbad_alloc例外が発生しますか?
c++ - delete []の代わりにfree()またはdeleteを呼び出すことに危険はありますか?
delete
配列の最初の要素を超えて要素の割り当てを解除しますか?
上記の場合、のすべての要素が連続して割り当てられていることを確認することは重要であり、配列の一部のみs
に割り当てられるべきではありませんか?delete
より複雑なタイプの場合delete
、最初のオブジェクトを超えてオブジェクトのデストラクタを呼び出しますか?
最初の数を超えるsの数をどのようdelete[]
に推測できObject
ますか?これは、割り当てられたメモリ領域のサイズを認識している必要があるという意味ではありませんか?パフォーマンス上の理由でメモリ領域にオーバーハングが割り当てられた場合はどうなりますか?たとえば、すべてのアロケータが1バイトの粒度を提供するわけではないと想定できます。その場合、特定の割り当ては、要素全体またはそれ以上、各要素に必要なサイズを超える可能性があります。
、などのプリミティブ型の場合、次の間にchar
違いint
はありますか。
delete
->free
割り当て解除機構を介してそれぞれの呼び出しがたどるルートを除いて?