<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                #### 23. 重載運算符和重載函數 C++ 允許在同一作用域中的某個**函數**和**運算符**指定多個定義,分別稱為**函數重載**和**運算符重載**。 重載聲明是指一個與之前已經在該作用域內聲明過的函數或方法具有相同名稱的聲明,但是它們的參數列表和定義(實現)不相同。 當您調用一個**重載函數**或**重載運算符**時,編譯器通過把您所使用的參數類型與定義中的參數類型進行比較,決定選用最合適的定義。選擇最合適的重載函數或重載運算符的過程,稱為**重載決策**。 **函數重載:** ~~~ //1. 在 .h 文件中定義 DevYK 對象 class DevYK { public: int length; DevYK(); ~DevYK(); void setLength(int len); int getLength(); }; //2. .cpp 實現 DevYK::DevYK() { cout << "執行 DevYK 空參構造函數" << endl; } DevYK::~DevYK() { cout << "DevYK 銷毀" << endl; } void DevYK::setLength(int len) { this->length = len; } int DevYK::getLength() { return this->length; } //3. 測試 void test21() { //1.運算符重載 DevYK devYkA; DevYK devYkB; DevYK devYkC; //進行初始化賦值 devYkA.setLength(500); devYkB.setLength(20); cout << "devYkA length : " << devYkA.getLength() << endl; cout << "devYkB length : " << devYkB.getLength() << endl; }; 復制代碼 ~~~ > **輸出:** > > devYkA length : 500 devYkB length : 20 **運算符重載:** 您可以重定義或重載大部分 C++ 內置的運算符。這樣,您就能使用自定義類型的運算符。 重載的運算符是帶有特殊名稱的函數,函數名是由關鍵字 operator 和其后要重載的運算符符號構成的。與其他函數一樣,重載運算符有一個返回類型和一個參數列表。 ~~~ DevYK operator+(const DevYK &b); 復制代碼 ~~~ 下面的實例使用成員函數演示了運算符重載的概念。在這里,對象作為參數進行傳遞,對象的屬性使用 **this** 運算符進行訪問,如下所示: ~~~ //1. 在 .h 文件中定義 DevYK 對象 class DevYK { public: int length; DevYK(); ~DevYK(); void setLength(int len); int getLength(); DevYK operator+(const DevYK &b); }; //2. .cpp 實現 DevYK::DevYK() { cout << "執行 DevYK 空參構造函數" << endl; } DevYK::~DevYK() { cout << "DevYK 銷毀" << endl; } void DevYK::setLength(int len) { this->length = len; } int DevYK::getLength() { return this->length; } // 重載 + 運算符,用于把兩個 Box 對象相加 class DevYK DevYK::operator+(const class DevYK &b) { DevYK devYk; devYk.length = this->length + b.length; return devYk; } //3. 測試: void test21() { //1.運算符重載 DevYK devYkA; DevYK devYkB; DevYK devYkC; //進行初始化賦值 devYkA.setLength(500); devYkB.setLength(20); cout << "devYkA length : " << devYkA.getLength() << endl; cout << "devYkB length : " << devYkB.getLength() << endl; devYkC = devYkA + devYkB; cout << "DevYK 運算符重載 = " << devYkC.getLength() << endl; }; 復制代碼 ~~~ > **輸出:** > > devYkA length : 500 devYkB length : 20 > > DevYK 運算符重載 = 520
                  <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>

                              哎呀哎呀视频在线观看