C++構(gòu)建函數(shù)使用介紹
構(gòu)造函數(shù)概念:
構(gòu)造函數(shù)是一個特殊的成員函數(shù),名字與類名相同,創(chuàng)建類類型對象時由編譯器自動調(diào)用,保證每個數(shù)據(jù)成員都有一個合適的初始值,并且在對象的生命周期內(nèi)只調(diào)用一次(創(chuàng)建對象)
作用:
創(chuàng)建一個對象(面向?qū)ο?,第一步肯定得?chuàng)建對象)并且數(shù)據(jù)成員都有初始數(shù)值(數(shù)值有初始化和賦值)
初始化和賦值區(qū)別
- 初始化(數(shù)值在構(gòu)建函數(shù)中給予)
- 賦值(數(shù)值在構(gòu)建函數(shù)完成之后給予)
初始化(數(shù)值在構(gòu)建函數(shù)中給予)
#ifndef __COMPLEX__ #define __COMPLEX__ class complex { public: complex(double r = 0, double i = 0) : re(r), im(i) {} //初始化 private: double re, im; }; #endif // !__COMPLEX__
#include"complex.h" int main() { complex c1(1, 1); return 0; }
1.調(diào)用構(gòu)造函數(shù)
2.創(chuàng)建對象名字為c1
3.對象中數(shù)據(jù)成員與函數(shù)參數(shù)對應(yīng),進(jìn)行數(shù)值給予,生成對象的數(shù)據(jù)成員順序是類中private的順序
4.對象c1創(chuàng)建成功
賦值(數(shù)值在構(gòu)建函數(shù)完成之后給予)
#ifndef __COMPLEX__ #define __COMPLEX__ class complex { public: complex(double r = 0, double i = 0) //名字與類名相同 { re = r; im = i; } private: double re, im; }; #endif // !__COMPLEX__
#include"complex.h" int main() { complex c1(1, 1); return 0; }
1.調(diào)用構(gòu)造函數(shù)
2.創(chuàng)建對象名字為c1
3.構(gòu)建函數(shù)中沒有初始化,編譯器自動加上初始化操作,對數(shù)據(jù)成員進(jìn)行隨機(jī)數(shù)初始化
4.對象c1創(chuàng)建成功
5.函數(shù)中輸入的兩個參數(shù),函數(shù)執(zhí)行命令行,對數(shù)據(jù)進(jìn)行賦值
如何得知兩則區(qū)別
tihs指針
this指針中存儲的是自己對象的地址
在兩者構(gòu)造函數(shù)中使用this指針,初始化操作因?yàn)轭悓ο笸瓿沙跏蓟埃悓ο筮€未形成,所以會對this報錯
初始化中使用this
class complex { public: complex(double r = 0, double i = 0) : this->re(r),this-> im(i) {} private: double re, im; };
error: expected '{' before 'this'
賦值中使用this
class complex { public: complex(double r = 0, double i = 0) { this->im = r; this->re = i; } private: double re, im; };
到此這篇關(guān)于C++構(gòu)建函數(shù)使用介紹的文章就介紹到這了,更多相關(guān)C++構(gòu)建函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- C++類與對象深入之構(gòu)造函數(shù)與析構(gòu)函數(shù)詳解
- C++超詳細(xì)講解拷貝構(gòu)造函數(shù)
- C++超詳細(xì)講解構(gòu)造函數(shù)與析構(gòu)函數(shù)的用法及實(shí)現(xiàn)
- C++探索構(gòu)造函數(shù)私有化會產(chǎn)生什么結(jié)果
- C++分析構(gòu)造函數(shù)與析造函數(shù)的特點(diǎn)梳理
- c++詳細(xì)講解構(gòu)造函數(shù)的拷貝流程
- C++構(gòu)造函數(shù)的類型,淺拷貝與深拷貝詳解
- C++類繼承時的構(gòu)造函數(shù)
- C++淺析構(gòu)造函數(shù)的特性
相關(guān)文章
C++實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(Map實(shí)現(xiàn))
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-06-06使用C++17實(shí)現(xiàn)JSON庫設(shè)計思路示例全解
這篇文章主要為大家介紹了使用C++17實(shí)現(xiàn)JSON庫設(shè)計思路示例全解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08C++實(shí)現(xiàn)LeetCode(159.最多有兩個不同字符的最長子串)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(159.最多有兩個不同字符的最長子串),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C語言深入淺出講解直接插入排序算法的實(shí)現(xiàn)
插入排序也是最簡單的一類排序方法,我今天介紹的也是插入排序里最直觀且淺顯易懂的直接插入排序。對這個很簡單的排序,記得當(dāng)時也是花了近兩個晚上才搞懂它的原理的,接下來就來介紹一下2022-05-05