<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # C++ `this`指針 > 原文: [https://beginnersbook.com/2017/08/cpp-this-pointer/](https://beginnersbook.com/2017/08/cpp-this-pointer/) `this`指針保存當前對象的地址,簡單來說,你可以說這個[指針](https://beginnersbook.com/2017/08/cpp-pointers/)指向該類的當前對象。讓我們舉個例子來理解這個概念。 ## C++ 示例:`this`指針 在這里你可以看到我們有兩個數據成員`num`和`ch`。在成員函數`setMyValues()`中,我們有兩個與數據成員名稱相同的局部變量。在這種情況下,如果要將局部變量值賦值給數據成員,那么除非使用`this`指針,否則您將無法執行此操作,因為除非您使用`this`,否則編譯器將不知道您指的是對象的數據成員。這是必須使用`this`指針的示例之一。 ```cpp #include <iostream> using namespace std; class Demo { private: int num; char ch; public: void setMyValues(int num, char ch){ this->num =num; this->ch=ch; } void displayMyValues(){ cout<<num<<endl; cout<<ch; } }; int main(){ Demo obj; obj.setMyValues(100, 'A'); ? obj.displayMyValues(); return 0; } ``` **輸出:** ```cpp 100 A ``` ## 示例 2:使用`this`指針進行函數鏈式調用 使用`this`指針的另一個示例是返回當前對象的引用,以便您可以鏈式調用函數,這樣您就可以一次調用當前對象的所有函數。在這個程序中需要注意的另一個要點是,我在第二個函數中增加了對象`num`的值,你可以在輸出中看到它實際上增加了我們在第一個函數調用中設置的值。這表明鏈接是順序的,對對象的數據成員所做的更改將保留以進一步鏈式調用。 ```cpp #include <iostream> using namespace std; class Demo { private: int num; char ch; public: Demo &setNum(int num){ this->num =num; return *this; } Demo &setCh(char ch){ this->num++; this->ch =ch; return *this; } void displayMyValues(){ cout<<num<<endl; cout<<ch; } }; int main(){ Demo obj; //Chaining calls obj.setNum(100).setCh('A'); obj.displayMyValues(); return 0; } ``` **輸出:** ```cpp 101 A ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看