2

constオブジェクト指向の C++ クラスのキーワードについて学習しています。私たちの教授は、私たちがconstキーワードを使用する可能なすべての方法を学ぶのを助けるために、意図的に船外に出ていると言います.

私たちの任務で、彼は次のように述べています。

コンストラクターのパラメーターは、定数ポインターの定数配列への定数ポインターである必要があります

このパラメーター リストの例を示して、各 const の機能を説明してもらえますか? プロトタイプは次のようになると思います。

Square(const char* const []);
  • 最初はポインター用です (この場合は char*)
  • 2番目のconstは配列用です
  • しかし、3番目のconstをどこに置くかわかりません

どんな助けでも大歓迎です。

4

2 に答える 2

3

どれどれ:

  1. ポインターの配列:void * array[10];

  2. 「定数配列」と同じ、定数ポインタの配列: void * const array[10].

  3. 上記へのポインタ:void * const (*pa)[10] = &array;

  4. (2) への定数ポインタ:void * const (* const pa)[10] = &array;

  5. 元の配列が const へのポインターで構成される上記のバージョン:

    void const * array2[15];
    
    void const * const (* const pa)[15] = &array2;
    

したがって、基になる型と配列サイズのコンストラクターのシグネチャは次のとおりです。

struct Foo
{
    template <typename T, unsigned int N>
    Foo(T const * const (* const pa)[N]);

    // ...
};

それが何に役立つかについて:ほとんど何もありません。しかし、これを理解するのは悪くありません。

于 2012-09-24T23:41:01.163 に答える
-1

C よりも C++ で記述した方がはるかに読みやすくなります。

const std::array<const T, N>* const
于 2012-09-24T23:47:18.770 に答える