C++構(gòu)建函數(shù)使用介紹
構(gòu)造函數(shù)概念:
構(gòu)造函數(shù)是一個(gè)特殊的成員函數(shù),名字與類名相同,創(chuàng)建類類型對(duì)象時(shí)由編譯器自動(dòng)調(diào)用,保證每個(gè)數(shù)據(jù)成員都有一個(gè)合適的初始值,并且在對(duì)象的生命周期內(nèi)只調(diào)用一次(創(chuàng)建對(duì)象)
作用:
創(chuàng)建一個(gè)對(duì)象(面向?qū)ο?,第一步肯定得?chuàng)建對(duì)象)并且數(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)建對(duì)象名字為c1
3.對(duì)象中數(shù)據(jù)成員與函數(shù)參數(shù)對(duì)應(yīng),進(jìn)行數(shù)值給予,生成對(duì)象的數(shù)據(jù)成員順序是類中private的順序
4.對(duì)象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)建對(duì)象名字為c1
3.構(gòu)建函數(shù)中沒有初始化,編譯器自動(dòng)加上初始化操作,對(duì)數(shù)據(jù)成員進(jìn)行隨機(jī)數(shù)初始化
4.對(duì)象c1創(chuàng)建成功
5.函數(shù)中輸入的兩個(gè)參數(shù),函數(shù)執(zhí)行命令行,對(duì)數(shù)據(jù)進(jìn)行賦值
如何得知兩則區(qū)別
tihs指針
this指針中存儲(chǔ)的是自己對(duì)象的地址
在兩者構(gòu)造函數(shù)中使用this指針,初始化操作因?yàn)轭悓?duì)象完成初始化前,類對(duì)象還未形成,所以會(huì)對(duì)this報(bào)錯(cuò)
初始化中使用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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- C++類與對(duì)象深入之構(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ù)私有化會(huì)產(chǎn)生什么結(jié)果
- C++分析構(gòu)造函數(shù)與析造函數(shù)的特點(diǎn)梳理
- c++詳細(xì)講解構(gòu)造函數(shù)的拷貝流程
- C++構(gòu)造函數(shù)的類型,淺拷貝與深拷貝詳解
- C++類繼承時(shí)的構(gòu)造函數(shù)
- C++淺析構(gòu)造函數(shù)的特性
相關(guān)文章
C語言算法練習(xí)之?dāng)?shù)組求素?cái)?shù)
這篇文章主要為大家介紹了C語言算法練習(xí)中數(shù)組求素?cái)?shù)的實(shí)現(xiàn)方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C語言有一定幫助,需要的可以參考一下2022-09-09
C++?vector的簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了C++?vector的簡(jiǎn)單實(shí)現(xiàn),使用數(shù)據(jù)庫(kù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
c語言中的局部跳轉(zhuǎn)及全局跳轉(zhuǎn)功能
本文介紹了C語言中的goto語句,以及如何使用setjmp和longjmp實(shí)現(xiàn)跨函數(shù)的跳轉(zhuǎn),詳細(xì)講解了setjmp和longjmp的使用方法和注意事項(xiàng),以及使用這種全局跳轉(zhuǎn)后變量狀態(tài)的不確定性,感興趣的朋友一起看看吧2024-09-09
C語言實(shí)現(xiàn)在控制臺(tái)打印余弦曲線
余弦曲線又叫余弦波(cosinwave),是一種來自數(shù)學(xué)三角函數(shù)中的余弦比例的曲線。這篇文章主要為大家介紹了如何在控制臺(tái)繪制余弦曲線,感興趣的可以了解一下2023-02-02
C語言實(shí)現(xiàn)經(jīng)典24點(diǎn)算法
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)經(jīng)典24點(diǎn)算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10
AVX2指令集優(yōu)化浮點(diǎn)數(shù)組求和算法
這篇文章主要為大家介紹了AVX2指令集優(yōu)化浮點(diǎn)數(shù)組求和算法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
c++利用windows函數(shù)實(shí)現(xiàn)計(jì)時(shí)示例
這篇文章主要介紹了c++利用windows函數(shù)實(shí)現(xiàn)計(jì)時(shí)示例,需要的朋友可以參考下2014-05-05

