問題タブ [member-functions]

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.

0 投票する
4 に答える
25911 参照

c++ - 静的メンバー関数とスレッドセーフ

静的メンバー関数で作成されたオブジェクトと変数は、メンバー関数の場合のように「ローカル」とは見なされないため、複数のスレッド間で共有できるようになりました。

一方、オブジェクトを作成するメンバー関数がある場合、これはスレッドに対してローカルであるため、非共有になります。

私はこれを言うのは正しいですか?

0 投票する
2 に答える
106033 参照

c++ - 演算子のオーバーロード:メンバー関数と非メンバー関数?

メンバー関数として宣言されたオーバーロードされた演算子は、1つのパラメーターしか持てず、他のパラメーターが自動的に渡されるため、非対称thisであると読みました。したがって、それらを比較するための標準は存在しません。一方、aとして宣言されたオーバーロードされた演算子はfriend、同じ型の2つの引数を渡すため、対称であり、したがって、それらを比較できます。

私の質問は、ポインタの左辺値を参照と比較できるのに、なぜ友達が好まれるのかということです。(非対称バージョンを使用すると、対称バージョンと同じ結果が得られます)STLアルゴリズムが対称バージョンのみを使用するのはなぜですか?

0 投票する
2 に答える
1310 参照

php - 一方のサーバーではカスタムMagentoモジュールに致命的なエラーが発生しましたが、もう一方のサーバーでは致命的エラーは発生しませんでした

Magentoで独自のカスタムモジュールを作成していますが、Litespeedサーバー(PHP v5.2.14)Fatal Error: Call to a member function batch() on a non-object in ../../../BatchController.php on line 25でのテスト中に、別のLinuxサーバーとWampサーバー(PHP v5.2.11)でのテスト中に表示されなかったものが表示されます。

これは私を困惑させました。コード自体ではなく、サーバーの構成に関係していると思います。しかし、私はただ推測しています。私はここの誰かが私に言うことができることを望んでいました。

私が見ることができた唯一の本当の大きな違いは、phpのバージョンと環境を除いて、エラーが発生しているサーバーがSuhosinパッチを使用していることです。しかし、それはこれを引き起こす可能性があるものでしょうか?

問題の行はMage::getModel('mymodule/mymodel')->batch();、IFステートメントで囲まれています。batch()モデルファイルにあるパブリック関数です。

さらにコードが必要な場合はお知らせください。

ありがとう!

0 投票する
4 に答える
26428 参照

c++ - C++の揮発性メンバー関数

すべてのメンバー変数を自動的に宣言する必要がありxますかy、それとも自動的にvolatile扱われvolatileますか?

コンパイラによってx「stuffwith」が「stuffwith」に並べ替えられないようにしたい。y

編集:通常のタイプをタイプにキャストするとどうなりvolatileますか?これは、その場所へのアクセスを並べ替えないようにコンパイラーに指示しますか?特別な状況で、パラメーターが揮発性である関数に正規変数を渡したいです。コンパイラがその呼び出しを前または後の読み取りと書き込みで並べ替えないようにする必要があります。

0 投票する
5 に答える
32623 参照

c++ - C++ typedef メンバー関数の署名構文

メンバー関数シグネチャの型定義を宣言したい。グローバル関数の typedef は次のようになります。

しかし、メンバー関数については同じことができません:

foo::クラスのメンバーにアクセスするための構文であるため、私には論理的に聞こえますfoo

署名だけを型定義するにはどうすればよいですか?

0 投票する
2 に答える
1297 参照

c++ - C++0x | std::atomic が各メソッドを volatile 修飾子でオーバーロードするのはなぜですか?

現在のドラフトからの次の抜粋は、私が何を意味するかを示しています。

揮発性は推移的です。したがって、揮発性オブジェクトから非揮発性メンバー関数を呼び出すことはできません。一方、非揮発性オブジェクトから揮発性メンバー関数を呼び出すことは許可されています。

では、アトミック クラスの揮発性メンバー関数と非揮発性メンバー関数の間に実装の違いはありますか? 言い換えれば、不揮発性オーバーロードの必要性はありますか?

0 投票する
1 に答える
179 参照

c++ - メンバー関数をデフォルトのパラメーターとして使用する方法はありますか?

このようなことを試みましたが、うまくいきませんでした。同様の効果を得る方法はありますか?

0 投票する
6 に答える
5700 参照

c++ - メンバー関数の静的変数

私は周りを検索しましたが、グローバル変数またはメンバー関数自体を除いて、これについて何も見つかりません。

上記は何をしますか、つまり何が起こるかjustAbool、スコープを離れた後もその値を保持しますか? それとも、スコープに再び入るときに値を「記憶」しますか?

0 投票する
3 に答える
1635 参照

c++ - C++メンバー-関数チェーンの戻り型と派生クラス

この不自然な例を考えると:

アイデアは、「メンバー関数チェーン」を使用して、連続して複数のメンバー関数を呼び出すことができるようにすることです。(これには多くの例があります。上記は、この質問をするために私が考えることができる最短の例です。私の実際の問題は同様であり、以下に説明されています。)

問題は、派生クラスが独自の連鎖メンバー関数を追加するが、最初に基本クラスのメンバー関数を呼び出すと、派生クラスのメンバー関数を呼び出すためにはもちろん機能しない基本クラス参照を取得することです。

この問題を解決し、メンバーと関数の連鎖を実行する機能を維持するための賢い方法はありますか?


実際の問題

の実際の問題は、私の基本クラスが例外であり、私の派生クラスが基本例外から派生したクラスであるということです。これらのクラスについても、メンバー関数チェーンを使用したいと思います。

問題はそれset_something()が戻ることですbase_exceptionが、catch期待しderived_exceptionます。もちろん、人間は例外の実際のタイプがであると言うことができますderived_exceptionが、コンパイラは明らかにわかりません。

これが私が本当に解決しようとしている問題です。つまり、基本例外クラスが例外オブジェクトにオプションのパラメーターを設定できるようにする一方で、派生型のインスタンスを返す方法です。point_2d私が上で示した例は、人々が理解できる同じ問題のより小さくて単純なバージョンであり、より小さな問題の解決策も私の実際の問題を解決するだろうと私は信じています。

base_exceptionテンプレートを作成して、次のような派生型を渡すことを検討したことに注意してください。

more_derived_exception実際には問題は解決すると思いますが、別のクラスがから派生した場合derived_exception、同じ問題に戻るため、完全な解決策ではありません。

0 投票する
4 に答える
6528 参照

c++ - C++ for_each のメンバー関数ポインター

私は学校のプロジェクト用に C++ で小さな仮想マシンを開発しています。これは dc コマンドのように動作し、入出力要素、チップセット、Cpu、および RAM で構成されています。私は現在、標準入力またはファイルからいくつかの Asm 命令を取得し、この命令を Cpu にプッシュできるようにするために、小さな解析クラスを実装したチップセットに取り組んでいます。

問題は、私の命令が std::list でソートされており、foreach 命令を使用してそれぞれをプッシュできるようにしたいということです。そのためには、メンバ関数「push_instruction」を for_each の関数ポインタ F として呼び出せる必要があります。そして、それを行うためのトリックを見つけることができませんでした...

何か案は?ここに私のコードがあります: