問題タブ [const-pointer]
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++ - ポインタを使用せずにCスタイルの配列を反復処理する
私はポインタ演算を学んでいて、かなり長い間エラーを出すコードがあります。助けていただければ幸いです(SOでは見つかりませんでした)
コードブロックで発生しているエラーを理解できません。私はこの声明を受け取っています。
[]
このコードでは、間接参照や演算子を使用せずに配列を反復処理する必要があります。
c++ - 関数から定数文字ポインタを返す
する
getName()
定数文字への定数ポインタを返すことを意味しますか? 関数は定数であるため、その引数は変更されません。
java - Java で const-pointers の動作をどのように再現しますか?
アプリケーションの残りの部分との同期を維持する必要がある一連の制御データを含むシングルトン クラスがあります。その結果、別のクラスで情報を読み取れるようにしたいが、変更はできないようにしたいことがよくあります。現在、このシングルトン クラスには多くのパブリック変数があります。ゲッター関数とセッター関数は冗長で煩わしいため、使用したくありません。また、変数はたくさんあります。
私のシングルトン クラスが ControlData と呼ばれる場合、ImmutableControlData と呼ばれる 2 番目のクラスを作成できます。このクラスにはすべて同じメンバーが含まれますが、それらは final と宣言されます。次に、シングルトンを取得するときに、ControlData オブジェクトではなく、ImmutableControlData を返します。ただし、これは、ImmutableControlData クラスと ControlData クラスを常に維持する必要があることを意味します (面倒です...)。
const-pointers があれば、const-pointer を ControlData オブジェクトに返すだけです。代わりに、Java で何ができますか?
c++ - malloc() を使用して const char 文字列にメモリを動的に割り当てる
.ini ファイルから値を読み取り、その値を PCSTR (const char *) を受け入れる関数に渡すプログラムを作成しています。機能はgetaddrinfo()
.
ということで、書きたいと思いますPCSTR ReadFromIni()
。定数文字列を返すには、定数文字列を使用してメモリを割り当て、メモリをmalloc()
キャストする予定です。.ini ファイルから読み取られた正確な文字数を取得できます。
そのテクニック大丈夫?他に何をすべきか本当にわかりません。
次の例は、Visual Studio 2013 で正常に動作し、必要に応じて "hello" を出力します。
c++ - c - この 2 つの const はどういう意味ですか?
コード:
上記のポインターには 2 つの const があり、このようなものは初めて見ました。
最初の const がポインターが指す値を不変にすることは知っていますが、2 番目の const はポインター自体を不変にしましたか?
誰でもこれを説明できますか?
@アップデート:
そして、その答えが正しいことを証明するプログラムを書きました。
3 つの関数の行のコメントを外すと、コンパイル エラーが発生し、ヒントが表示されます。
c++ - C++ での this* の型
それはばかげているように聞こえるかもしれません.C++prime 5th edition P258では、次のように書かれています:
既定では、this の型はクラス型の非 const バージョンへの const ポインターです。たとえば、既定では、Sales_data メンバー関数内の this の型は Sales_data *const です。
this* は const ポインターであることを理解できます。これは、初期化されたオブジェクトが指すオブジェクトは変更できないことを意味しますが、次のように述べています。
これは暗黙的ですが、通常の初期化規則に従います。つまり、(デフォルトでは) これを const オブジェクトにバインドすることはできません。
しかし、私は次のコードを書きましたが、それでも問題なくコンパイルされました:
私の質問は次のとおりです。「const」があるかどうかに関係なく、コンパイラがそれを正常にコンパイルできる場合、なぜそれが重要なのですか? そして、本は次のように述べています。
結局のところ、isbn の本体は this が指すオブジェクトを変更しないので、これが const へのポインターであれば、関数はより柔軟になります。
柔軟性とは何ですか?いくつかの例を見せていただけますか?
c++ - (非 const\const) データへの const ポインターの使用 \ 必要性が必要になるシナリオ
final
Java またはconst
C++ で定数値を強制し、作成したモジュールを使用するすべてのユーザーに対してコンパイラがそれを強制できるようにするという概念を理解しています。
データが一定であるかどうかに関係なく、ポインターをどこに置きたいconst
のか、なぜポインターを変更したくないのかわかりません。
例えば
これはなぜですか?
ポインター const を保持したい例を視覚化できません。ファイル ハンドルなどに使用できますか? それとも、変更したくないオブジェクトへのポインターですか?