中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中對象與類的詳細介紹

發布時間:2021-09-07 17:09:12 來源:億速云 閱讀:121 作者:chen 欄目:開發技術

本篇內容介紹了“C++中對象與類的詳細介紹”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

目錄
  • 什么是對象

  • 面向過程 vs 面向對象

    • 面向過程

    • 面向對象

  • 什么是類

    • 類的格式

      • 類的成員函數

        • 函數訪問權限

          • 方法一

          • 方法二

          • 方法三

        • inline 成員函數

        什么是對象

        任何事物都是一個對象, 也就是傳說中的萬物皆為對象.

        對象的組成:

        • 數據: 描述對象的屬性

        • 函數: 描述對象的行為, 根據外界的信息進行相應操作的代碼

        • 具有相同的屬性和行為的對象抽象為類 (class)

        • 類是對象的抽象

        • 對象則是類的特例

        面向過程 vs 面向對象

        面向過程

        面向過程的設計:

        • 圍繞功能, 用一個函數實現一個功能

        • 程序 = 算法 +數據結構

        • 算法和數據結構兩者互相獨立, 分開設計

        面向對象

        面向對象的設計:

        • 把算法和數據封裝在一個對象中

        • 設計所需要的歌者類和對象

        • 向有關對象發送消息

        • 對象 = 算法 + 數據結構

        • 程序 = 對象*n + 消息

        什么是類

        在 C++ 中, 用類來描述對象. 類屬于用戶自定的數據類型, 并且該類型的數據具有一定的行為能力, 也就是類中所描述的方法. 通常來說一個類的定義包含兩部分的內容, 一是該類的屬性, 二是該類的所擁有的方法.

        類的格式

        格式:

        class 類名
        {
            public:
            //公共的行為或屬性
        
            private:
            //私有的行為或屬性
        };

        例子:

        main.cpp:

        #include "Student.h"
        
        using namespace std;
        
        int main() {
            Student student1(1, "Little white", 'f');
        
            student1.display();
            return 0;
        }

        Student.cpp:

        #include "Student.h"
        #include <iostream>
        using namespace std;
        
        
        
        
        Student::Student(int n, string p, char g) {
            num = n;
            name = p;
            gender = g;
        }
        
        void Student::display() {
            cout << "num: " << num << endl;
            cout << "name: " << name << endl;
            cout << "gender: " << gender << endl;
        }

        Student.h:

        #ifndef PROJECT1_STUDENT_H
        #define PROJECT1_STUDENT_H
        
        #include <string>
        using namespace std;
        
        
        class Student {
        private:  // 私有成員
            int num;  // 學號
            string name;  // 名字
            char gender;  // 性別
        public:
            Student(int num, string name, char gender);
            void display();
        };
        
        
        #endif //PROJECT1_STUDENT_H

        輸出結果:

        num: 1
        name: Little white
        gender: f

        類的成員函數

        類的成員函數是一個類的成員, 在類體重聲明.

        注: 如果一個類中不包含成員函數, 就等同于 C 語言中的結構體了, 體現不出類在面向對象程序設計中的作用.

        函數訪問權限

        一般的做法: 講需要被外界調用的成員函數指定為 public, 它們是類的對外接口. (有的函數只被本類中的成員函數調用, 以支持其他的函數操作, 應該將它們制定為 private)

        私有的成員函數只能被本類中的其他成員函數所調用, 而不能被類外調用. 成員函數可以訪問本類中任何成員 (包括私有和公用的), 可以引用在本作用域中有效的數據.

        調用成員函數的權限:

        • private: 私有的

        • public: 公有的

        • protected: 受保護的

        訪問對象中成員的 3 種方法:

        1. 通過對象名和成員運算符訪問對象中的成員

        2. 通過指向對象的指針訪問對象中的成員

        3. 通過對象的引用變量訪問對象中的成員

        方法一

        通過對象名和成員運算符訪問對象中的成員.

        Time 類:

        #ifndef PROJECT1_TIME_H
        #define PROJECT1_TIME_H
        
        class Time {
        private:
            int hour;
            int minute;
            int second;
        public:
            void set_time(int h, int m, int s);
            void show_time();
        };
        
        #endif //PROJECT1_TIME_H

        main:

        int main() {
            Time time;
            time.set_time(6, 6, 6);
            time.show_time();
        
            return 0;
        }

        輸出結果:

        6:6:6

        方法二

        通過指向對象的指針訪問對象中的成員.

        Time 類:

        #ifndef PROJECT1_TIME_H
        #define PROJECT1_TIME_H
        
        class Time {
        private:
            int hour;
            int minute;
            int second;
        public:
            void set_time(int h, int m, int s);
            void show_time();
        };
        
        #endif //PROJECT1_TIME_H

        mian:

        int main() {
        
            Time time;  // 實例化time
            time.set_time(6, 6, 6);  // 設置時間
        
            Time *p = &time;  // 定義指針, 指向time地址
            p->show_time();
            (*p).show_time();
        
            return 0;
        }

        輸出結果:

        6:6:6
        6:6:6

        方法三

        通過對象的引用變量訪問對象中的成員.

        引用變量共占同一段存儲單元. 實際上它們是同一個對象, 只是不同的面子表示而已.

        Time 類:

        #ifndef PROJECT1_TIME_H
        #define PROJECT1_TIME_H
        
        class Time {
        private:
            int hour;
            int minute;
            int second;
        public:
            void set_time(int h, int m, int s);
            void show_time();
        };
        
        #endif //PROJECT1_TIME_H

        mian:

        int main() {
        
            Time time1;  // 實例化time
            time1.set_time(6, 6, 6);  // 設置時間
            
            Time &time2 = time1;
            time2.show_time();
        
            return 0;
        }

        輸出結果:

        6:6:6

        inline 成員函數

        使用內置函數只是影響編譯過程. 使用內置函數可以節省運行時間, 但卻增加了目標程序的長度:

        內置函數:

        • 一般只將規模很小而使用頻繁的函數聲明為內置函數

        • 內置函數中不能包括復雜的控制語句, 如循環語句和 switch 語句

        • 對函數做 inline 聲明, 只是程序設計者對編譯系統提出的一個建議, 而不是指令性的

        例子:

        # include <iostream>
        
        using namespace std;
        
        inline int max(int, int, int);
        
        int main() {
            int i = 10, j = 20, k = 40, m;
            m = max(i, j, k);
            cout << "max= " << m << endl;
        
            return 0;
        }
        inline int max(int a, int b, int c){
            a = b > a ? b : a;
            a = c > a ? c : a;
            return a;
        }

        “C++中對象與類的詳細介紹”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

        向AI問一下細節

        免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

        c++
        AI

        遵义县| 延庆县| 翁源县| 高密市| 镇坪县| 青海省| 客服| 沾益县| 玉山县| 万载县| 垣曲县| 玉树县| 方山县| 正宁县| 建德市| 武清区| 舒城县| 普安县| 三都| 淳安县| 巫山县| 井冈山市| 石嘴山市| 延寿县| 卓资县| 科尔| 南投市| 通道| 江门市| 民权县| 怀远县| 托里县| 深圳市| 唐海县| 荔浦县| 祁阳县| 东光县| 南部县| 扶余县| 贺兰县| 古交市|