問題タブ [redeclaration]

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 投票する
1 に答える
3730 参照

c++ - 元の宣言を囲まない名前空間での再宣言

名前空間メンバーは、宣言の名前空間を囲む名前空間で定義できます。

名前付き名前空間のメンバーは、定義されている名前の明示的な修飾 (3.4.3.2) によってその名前空間の外部で定義することもできます。ただし、定義されているエンティティが名前空間で既に宣言されており、その定義が名前空間の宣言ポイントの後にある場合に限ります。宣言の名前空間を囲みます

クラスは、宣言の名前空間を囲む名前空間で定義できます。

class-head-name に nested-name-specifier が含まれる場合、class-specifier は、nested-name-specifier が参照するクラスまたは名前空間、またはその名前空間のインライン名前空間セット (7.3.1) (つまり、単に using 宣言によって継承または導入されたものではない) であり、class-specifier は、前の宣言を囲む名前空間に現れるものとします。そのような場合、定義のクラスヘッド名のネストされた名前指定子は、decltype 指定子で始まってはなりません。

また、メンバー関数の定義と静的データ メンバーの定義にも同じ規則があります。

私の質問は、元の宣言を囲まない名前空間で再宣言 (定義ではない) が合法かどうかです。

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

c++ - C ++ forループで再宣言された変数の範囲がわかりにくい

次の while ループは終了しません。これは、変数xが while ループ内で再宣言されているためです。しかし、2回目以降の反復で、次のステートメントのブロックスコープで定義されたxではなく、外側のスコープで定義されたxx<10を考慮する理由がわかりません。これは、最初の反復が終了すると、ブロック スコープで定義された が破棄され、ループが新たに実行され始めるためですか?y=xxx

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

c - インクルード ガードなしで再宣言エラーを回避する

インクルード ガードを使用せずに再宣言エラーを回避したい場合、依存関係ツリーは 1 つまたは複数のツリーのみでなければならないという基本的な規則があります。

親が 2 つの異なる方法で連絡できる場合はいつでも、違反が発生しますか?

例えば:

declarations.h には string.h
が含まれます data.h には宣言
.h が含まれます data.c には data.h
が含まれます ui.c には data.h と string.h が含まれます

これは再宣言エラーを生成します。これは、ui.c とインクルード string.h の両方が、直接と data.h 経由の 2 つの異なる方法であるためです。したがって、ui.c には同じ親への複数のパスがあるため、構造はツリーではありません。

同じ親への複数のパスを持ち、再宣言エラーを発生させない方法はありますか?

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

c - c でのグローバル変数宣言

このコードをコンパイルすると、すべて正常に動作しますが、メイン関数内でこれを指定すると、

次のようなエラーが表示されます

なぜそうなのですか?

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

javascript - Javascript での変数の再宣言

今日、JavaScript を使用すると、エラーを発生させずにこれを実行できることが (難しい方法で) わかりました。

i誤って両方のループに同じ識別子を使用しました。

JavaScript コンパイラ/インタープリタは (Java のように) エラーを生成せず、外側のループで変数を隠す別の変数を作成しません (C++ のように)。それらは同じ変数を参照するため、外側のループは 1 回だけ実行されます。

これはなぜですか?この動作は、どのような状況でも役に立ちますか?

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

typescript - typescript での分割の複数の結果を無視する

次のようにタイプスクリプトの破壊を使用しています。

しかし、これはコンパイラ オプションに違反しているnoUnusedLocalsため、私が本当に欲しいのは次のとおりです。

しかし、これはブロックスコープ変数 ( という名前の 2 つの変数_) の再宣言に違反しています。

これに対処する最善の方法は何ですか?おそらく、ここでの破壊は間違った選択です。

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

php - PHP はクラスを再宣言できません - エラーが必要です - Silex フレームワーク

私はプロジェクトに取り組んでいますが、非常に厄介な問題があります。プロジェクトのいくつかの重要なクラスを含む PHP ファイル rb.php を使用します (RedBean ORM のファイル rb.php がすべて 1 つにまとめられています)。問題は、特別な場所ではファイルを正しく使用できますが、別の場所では正しく使用できないことです。

これは私の樹木です:

樹枝状

index.php にアクセスすると、すべてがうまくいき、できるようになりますrequire('rb.php');

私は $lifeCycle の優れた価値を持っています。しかし、関数add()、updates()などのコントローラーでこのファイルを使用したいと思います..だから私はこれを試します:

しかし、私はこのエラーがあります:

ファイルはすでに存在しているに違いないと思います。しかし、コメントすると、次のエラーが発生します。

このクラスは先ほどコメントした rb.php ファイルにあるため、これは正常です。

require をすれば class redeclare がありますが、入れないと class がありません。どんな助けでも大歓迎です。