<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      hwaityd的小窩

      Loading...

      類的組合(Class Composition)

      類的組合是一種“has-a”關(guān)系,指一個類的對象中可以包含其他類的對象作為其成員。組合在面向?qū)ο缶幊讨惺且环N常用的設(shè)計策略,用于構(gòu)建復(fù)雜的系統(tǒng)。

      1. 類的組合

      • 概念:組合是指一個類的對象包含另一個類的對象作為其成員,這表明一種整體與部分的關(guān)系。
      • 語法
        class Component {
            // 成員和方法
        };
        
        class Composite {
        private:
            Component part;
        public:
            Composite() {
                // Composite的構(gòu)造函數(shù)
            }
        
            void function() {
                part.function(); // 使用內(nèi)部的Component對象
            }
        };
        
      • 特點:組合使得Composite類可以管理Component對象的生命周期,并可以控制對Component對象的訪問。

      示例代碼

      #include <iostream>
      #include <string>
      
      class Person {
      public:
          Person(const std::string& name) : name(name) {}
          void speak() const {
              std::cout << name << " says hello!" << std::endl;
          }
      
      private:
          std::string name;
      };
      
      class Classroom {
      public:
          Classroom(const std::string& courseName, const Person& teacher)
              : courseName(courseName), teacher(teacher) {}
      
          void startLesson() const {
              std::cout << "Starting " << courseName << std::endl;
              teacher.speak();
          }
      
      private:
          std::string courseName;
          Person teacher; // Person對象作為Classroom的成員
      };
      
      int main() {
          Person teacher("Kimi");
          Classroom classroom("C++ Programming", teacher);
          classroom.startLesson();
          return 0;
      }
      

      2. 構(gòu)造函數(shù)的調(diào)用順序

      • 概念:在組合中,當(dāng)創(chuàng)建包含其他對象的類的對象時,需要調(diào)用這些成員對象的構(gòu)造函數(shù)來初始化它們。
      • 特點:成員對象的構(gòu)造函數(shù)在包含對象的構(gòu)造函數(shù)中通過初始化列表調(diào)用,調(diào)用順序是根據(jù)它們在類定義中出現(xiàn)的順序。

      示例代碼

      #include <iostream>
      #include <string>
      
      class Engine {
      public:
          Engine() {
              std::cout << "Engine constructed" << std::endl;
          }
          ~Engine() {
              std::cout << "Engine destroyed" << std::endl;
          }
      };
      
      class Car {
      private:
          Engine engine;
      public:
          Car() : engine() {  // Engine的構(gòu)造函數(shù)通過初始化列表調(diào)用
              std::cout << "Car constructed" << std::endl;
          }
          ~Car() {
              std::cout << "Car destroyed" << std::endl;
          }
      };
      
      int main() {
          Car car;  // 調(diào)用Car的構(gòu)造函數(shù),進(jìn)而調(diào)用Engine的構(gòu)造函數(shù)
          return 0;
      }
      

      在這個示例中,當(dāng)Car對象被創(chuàng)建時,首先會調(diào)用Engine對象的構(gòu)造函數(shù),然后調(diào)用Car的構(gòu)造函數(shù)。對象的銷毀順序與構(gòu)造順序相反,即首先銷毀Car對象,然后是Engine對象。

      類的組合是一種強大的設(shè)計模式,它允許開發(fā)者通過構(gòu)建和管理對象之間的關(guān)系來設(shè)計靈活和可重用的類。正確的構(gòu)造函數(shù)和析構(gòu)函數(shù)的編寫確保了成員對象的正確初始化和清理。

      posted on 2024-10-20 00:41  hwaityd  閱讀(172)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 色综合中文综合网| 国产精品一区二区三粉嫩| 亚洲人成在久久综合网站| 佛教| 精品人人妻人人澡人人爽人人| 精品视频不卡免费观看| 免费国精产品wnw2544| 免费可以在线看a∨网站| 亚洲国产成人综合自在线| 麻豆国产成人AV在线播放| 亚洲AV日韩精品久久久久| 丰满人妻熟妇乱又精品视| 亚洲色一区二区三区四区| 精品无码人妻| 亚洲国产精品一区在线看| 无码人妻精品一区二区三区夜夜嗨| 无码av中文字幕久久专区| 国产亚洲精品中文字幕| 国产欧美久久一区二区三区| 国产精品日韩av一区二区| 亚洲一区二区三区在线观看精品中文| 欧美人伦禁忌dvd放荡欲情 | 国产精品中文第一字幕| 欧洲人妻丰满av无码久久不卡| 亚洲成人免费一级av| 久久天天躁狠狠躁夜夜躁2020 | 国产激情av一区二区三区| 国产亚欧女人天堂AV在线| 亚洲av午夜福利精品一区二区| 四虎国产精品成人免费久久| 亚洲嫩模喷白浆在线观看| 亚洲精品天堂成人片AV在线播放| 少妇爽到呻吟的视频| 亚洲国产一区二区三区四| 成人网站免费观看| 久久亚洲精品11p| 国产精品无码无需播放器| 国产麻豆成人传媒免费观看| 久久精品中文字幕少妇| 加勒比无码专区中文字幕| 国产精品免费AⅤ片在线观看|