<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                #### 21. 類 & 對象 C++ 在 C 語言的基礎上增加了面向對象編程,C++ 支持面向對象程序設計。類是 C++ 的核心特性,通常被稱為用戶定義的類型。 類用于指定對象的形式,它包含了數據表示法和用于處理數據的方法。類中的數據和方法稱為類的成員。函數在一個類中被稱為類的成員。 **類定義:** 定義一個類,本質上是定義一個數據類型的藍圖。這實際上并沒有定義任何數據,但它定義了類的名稱意味著什么,也就是說,它定義了類的對象包括了什么,以及可以在這個對象上執行哪些操作。 類定義是以關鍵字 **class** 開頭,后跟類的名稱。類的主體是包含在一對花括號中。類定義后必須跟著一個分號或一個聲明列表。例如,我們創建一個 \*.h 文件 使用關鍵字 **class** 定義 Person 數據類型,如下所示: ~~~ //定義了一個 Person ,跟 Java class 差不多 class Person { public: //公共的屬性 Person(); //空參 ~Person(); //Person 銷毀執行 Person(char *name, char *gen, int age); //有參構造 //成員變量 char *name; char *gen; int age; //函數 void setName(char *name); char *getName(); void setGen(char *gen); char *getGen(); void setAge(int age); int getAge(); }; 復制代碼 ~~~ 關鍵字 **public** 確定了類成員的訪問屬性。在類對象作用域內,公共成員在類的外部是可訪問的。您也可以指定類的成員為 **private** 或 **protected**。 **定義 C++ 對象:** 類提供了對象的藍圖,所以基本上,對象是根據類來創建的。聲明類的對象,就像聲明基本類型的變量一樣。下面的語句聲明了類 Person的兩個對象: ~~~ Person personTemp;//聲明 personTemp 類型為 Person 復制代碼 ~~~ **訪問數據成員:** 類的對象的公共數據成員可以使用直接成員訪問運算符 (.) 來訪問。為了更好地理解這些概念,讓我們嘗試一下下面的實例: ~~~ //1. person.h 文件中定義 Person 對象 //定義了一個 Person ,跟 Java class 差不多 class Person { public: //公共的屬性 Person(); ~Person(); Person(char *name, char *gen, int age); char *name; char *gen; int age; void setName(char *name); char *getName(); void setGen(char *gen); char *getGen(); void setAge(int age); int getAge(); }; //2. person.cpp Person::Person(char *name, char *gen, int age) { this->name = name; this->age = age; this->gen = gen; } Person::~Person() { cout << "Person 銷毀" << endl; } Person::Person() { cout << "執行 Person 空參構造函數" << endl; } void Person::setAge(int age) { this->age = age; } void Person::setName(char *name) { this->name = name; } void Person::setGen(char *gen) { this->gen = gen; } char *Person::getName() { cout << "DevYK getName" << endl; return this->name; } char *Person::getGen() { return this->gen; } int Person::getAge() { return this->age; } //3. 測試 void test19() { //棧里面定義的當該方法執行完就會回收掉 Person 對象 Person personTemp; personTemp.setGen("男"); personTemp.setName("小明"); personTemp.setAge(18); cout << personTemp.getName() << "\t" << personTemp.getGen() << "\t" << personTemp.getAge() << endl; //初始化 Person 對象,在堆內存中,如果不主動清理 那么就會造成 內存泄漏 Person *person = new Person("DevYK", "男", 28); cout << person->getName() << "\t" << person->getGen() << "\t" << person->getAge() << endl; //釋放 person 堆內存 delete person; } 復制代碼 ~~~ > **輸出:** > > 執行 Person 空參構造函數 小明 男 18 DevYK 男 28 Person 銷毀 Person 銷毀 需要注意的是,私有的成員和受保護的成員不能使用直接成員訪問運算符 (.) 來直接訪問。我們將在后續的教程中學習如何訪問私有成員和受保護的成員。 **類 & 對象詳解:** 到目前為止,我們已經對 C++ 的類和對象有了基本的了解。下面的列表中還列出了其他一些 C++ 類和對象相關的概念,可以點擊相應的鏈接進行學習。 | 概念 | 描述 | | --- | --- | | [類成員函數](https://www.runoob.com/cplusplus/cpp-class-member-functions.html) | 類的成員函數是指那些把定義和原型寫在類定義內部的函數,就像類定義中的其他變量一樣。 | | [類訪問修飾符](https://www.runoob.com/cplusplus/cpp-class-access-modifiers.html) | 類成員可以被定義為 public、private 或 protected。默認情況下是定義為 private。 | | [構造函數 & 析構函數](https://www.runoob.com/cplusplus/cpp-constructor-destructor.html) | 類的構造函數是一種特殊的函數,在創建一個新的對象時調用。類的析構函數也是一種特殊的函數,在刪除所創建的對象時調用。 | | [C++ 拷貝構造函數](https://www.runoob.com/cplusplus/cpp-copy-constructor.html) | 拷貝構造函數,是一種特殊的構造函數,它在創建對象時,是使用同一類中之前創建的對象來初始化新創建的對象。 | | [C++ 友元函數](https://www.runoob.com/cplusplus/cpp-friend-functions.html) | **友元函數**可以訪問類的 private 和 protected 成員。 | | [C++ 內聯函數](https://www.runoob.com/cplusplus/cpp-inline-functions.html) | 通過內聯函數,編譯器試圖在調用函數的地方擴展函數體中的代碼。 | | [C++ 中的 this 指針](https://www.runoob.com/cplusplus/cpp-this-pointer.html) | 每個對象都有一個特殊的指針 **this**,它指向對象本身。 | | [C++ 中指向類的指針](https://www.runoob.com/cplusplus/cpp-pointer-to-class.html) | 指向類的指針方式如同指向結構的指針。實際上,類可以看成是一個帶有函數的結構。 | | [C++ 類的靜態成員](https://www.runoob.com/cplusplus/cpp-static-members.html) | 類的數據成員和函數成員都可以被聲明為靜態的。 |
                  <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>

                              哎呀哎呀视频在线观看