1. 程式人生 > 其它 >C++_14_常量指標—this指標

C++_14_常量指標—this指標

常量指標—this指標

  this指標:成員函式一般都會擁有一個常量指標(this),指向呼叫函式的物件,儲存的是改物件的首地址(注意:靜態成員函式是沒有this指標的)

//標準寫法
class book
{
public:
    book(){this->price = 0.0; this->title = NULL;}
private:
    double price;
    char * title;
};
//常用寫法(省略this)
class book
{
public:
    book(){price = 0.0; title = NULL;}
private:
    
double price; char * title; }; //兩種寫法收拾正確的

 

通常我們在設計成員函式時會將形參與成員變數設計成同一個名字,如下所示,此時函式定義的時候price = price;這樣的程式看起來總是有些彆扭的。這個使用如果使用 this 指標則就能很明朗的進行區分兩個 price 了。

class book
{
public:
    void setprice(double price)
    {
        this->price = price;
    }
private:
    double price;
    char * title;
};

  利用 this->price 表明前面一個 price 為類中的成員變數,而後面一個 price 為形參中的 price。this 指標在此時避免命名衝突產生理解上的歧義。

  this 指標是常量指標,它的值是不能被修改的,一切企圖修改該指標的操作如賦值、遞增、遞減等都是不允許的。
  此外 this 指標只非 static 成員函式中才是有效的,因為static成員函式是屬於類的公有資源沒有this指標