3.0 C++遠征:構造函數

6-1構造函數

1.內存分區

內存分區.png

2.對象結構

對象在被實例化之前,并不占用堆中或棧中的內存空間。

對象結構.png

實例化的三個car對象,每個對象都會在棧上開辟一片內存。私有變量都不相同,占據著不同的內存。

而int getWheelCount()的邏輯代碼在內存的代碼區,只編譯出一份,供所有的對象使用。誰需要誰使用,找到函數入口就可以進行調用。

3.對象初始化

(1)有且只有一次的初始化動作

? 構造函數,避免忘記或重復進行初始化。

? 構造函數的規則:

構造函數的規則.png

? 構造函數的特點:

構造函數的特點.png

? 無參構造函數:

        class Student{
        public:
            Student(){
                m_strName = "Jim";
            }
        private:
            string m_strName;
        }

? 有參構造函數:

        class Student{
        public:
            Student(string _name){
                m_strName = _name;
            }
        private:
            string m_strName;
        }

? 重載構造函數:

        class Student{
        public:
            Student(string _name){
                m_strName = _name;
            }
            Student(string _name){
                m_strName = _name;
            }
        private:
            string m_strName;
        }

(2)根據條件進行初始化動作

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容