C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++のドット演算子とは何ですか?


ドットと矢印の演算子は、どちらもC++でクラスのメンバーにアクセスするために使用されます。それらはさまざまなシナリオで使用されます。 C ++では、クラス、構造体、または共用体として宣言された型は「クラス型」と見なされます。したがって、以下はそれらの両方を指します。

  • a.bは、bがオブジェクトのメンバー(またはオブジェクトへの参照[1])である場合にのみ使用されます。したがって、a.bの場合、aは常にクラスの実際のオブジェクト(またはオブジェクトへの参照)になります。
  • a→bは基本的に(* a).bの省略表記です。つまり、aがオブジェクトへのポインタである場合、→bはポイントするオブジェクトのプロパティbにアクセスしています。
注意してください。オーバーロード可能ではありません。 →はオーバーロード可能な演算子なので、この演算子を使用するときに呼び出す必要のある独自の関数(演算子→())を定義できます。したがって、aが演算子→をオーバーロードするクラスのオブジェクトである場合(一般的なそのようなタイプはスマートポインターとイテレーターです)、その意味はクラスデザイナーが実装したものです。


[1]参照は、意味的にはオブジェクトへのエイリアスであるため、#3にも「またはポインタへの参照」を追加する必要がありました。ただし、ポインタ(T *&)への参照が使用されることはめったにないため、これは役立つよりも混乱を招くと思いました。

#include<iostream>
class A {
   public: int b;
   A() { b = 5; }
};
int main() {
   A a = A();
   A* x = &a;
   std::cout << "a.b = " << a.b << "\n";
   std::cout << "x->b = " << x->b << "\n";
   return 0;
}
出力 これにより出力が得られます-

5
5

  1. C ++のsizeof演算子とは何ですか?

    sizeofはキーワードですが、変数またはデータ型のサイズをバイト単位で決定するコンパイル時の演算子です。 sizeof演算子を使用して、クラス、構造体、共用体、およびその他のユーザー定義のデータ型のサイズを取得できます。 sizeofを使用する構文は次のとおりです- sizeof (data type) ここで、データ型は、クラス、構造体、共用体、およびその他のユーザー定義のデータ型を含む、目的のデータ型です。 sizeof演算子をchar型のオブジェクトに適用すると、1が得られます。sizeof演算子を配列に適用すると、配列IDで表されるポインターのサイズではなく、その配列の合計バイト数が

  2. C ++のアクセス修飾子とは何ですか?

    データの非表示は、オブジェクト指向プログラミングの重要な機能の1つであり、プログラムの機能がクラス型の内部表現に直接アクセスするのを防ぐことができます。クラスメンバーへのアクセス制限は、ラベル付けされたアクセス修飾子(クラス本体内のパブリック、プライベート、および保護されたセクション)によって指定されます。 メンバーとクラスのデフォルトのアクセスはプライベートです class Base {    public:       // public members go here       protected: &n