[C++学習ノート]: このポインタ

C++ では、各メンバー関数には特別なポインタが含まれています。ポインタの名前は固定されており、これと呼ばれます。これはこのクラスのオブジェクトへのポインタであり、その値は現在呼び出されたメンバー関数が配置されているオブジェクトです。初期アドレス。

this ポインターは暗黙的に使用され、パラメーターとしてメンバー関数に渡されます。

これはコンパイル システムによって自動的に実装されるため、プログラマはこのポインタを手動で仮パラメータに追加したり、オブジェクトのアドレスをこのポインタに渡す必要はありません。

C++ では、*this を使用して、呼び出されたメンバー関数が配置されているオブジェクトを表すために this ポインターを明示的に使用することもできます。*this は this が指すオブジェクト、つまり現在のオブジェクトです。

C++ 定数オブジェクト

定数オブジェクトとは、初期値を持つオブジェクトを指します。データ メンバーが変更されないようにしたい場合は、それを定数オブジェクトとして宣言できます。 

定数オブジェクトを定義する一般的な形式は次のとおりです。 

クラス名 const オブジェクト名 [(実際のパラメータリスト列)];

左端に const を書くこともできます。 

const クラス名 オブジェクト名 [(実際のパラメータリスト列)];

オブジェクトが定数オブジェクトとして宣言されている場合、オブジェクトの非定数メンバー関数を呼び出すことはできません。これは、これらの関数が定数オブジェクト内のデータ メンバーの値を変更することを防ぐためです。

ケース: C++this ポインターの使用

#include <iostream>
名前空間 std を使用します。
class Box
{    public:       // 构造関数数定义       Box(double l=2.0, double w=2.0, double h=2.0)       {          length = l;          幅 = w;          高さ = h;       }       double Volume() //求体积       {          長さ * 幅 * 高さを返します。       int       Compare(Box box)       {          return this->Volume() > box.Volume();       プライベート    :       倍長の長さ。//       倍幅; //宽高       さの倍増; //高}; int main(void) {





















 


   ボックス box1(3.3, 1.2, 1.5);
   ボックス box2(8.5, 6.0, 2.0);
   if(box1.compare(box2))
   {       cout << "ボックス 2 の体積はボックス 1 より小さいです" <<endl;    }    else    {       cout << "ボックス 2 の体積はボックス 1 の体積より大きいか、ボックス 1 と同じです。" <<endl; }    return    0; }







結果をコンパイルして実行します。

箱 2 の体積は箱 1 の体積より大きい、または箱 1 と同じです

----------------------------- -
プロセスは 0.07514 秒後に戻り値 0 で終了しました。
続行するには任意のキーを押してください。

おすすめ

転載: blog.csdn.net/Jiangziyadizi/article/details/129413709