日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達者為師

網(wǎng)站首頁 編程語言 正文

C++構(gòu)建函數(shù)使用介紹_C 語言

作者:ljh5930 ? 更新時間: 2022-10-25 編程語言

構(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),進行數(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ù)成員進行隨機數(shù)初始化

4.對象c1創(chuàng)建成功

5.函數(shù)中輸入的兩個參數(shù),函數(shù)執(zhí)行命令行,對數(shù)據(jù)進行賦值

如何得知兩則區(qū)別

tihs指針

this指針中存儲的是自己對象的地址

在兩者構(gòu)造函數(shù)中使用this指針,初始化操作因為類對象完成初始化前,類對象還未形成,所以會對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;
};

原文鏈接:https://blog.csdn.net/ljh5930/article/details/126559320

欄目分類
最近更新