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

學無先后,達者為師

網站首頁 編程語言 正文

C++構建函數使用介紹_C 語言

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

構造函數概念:

構造函數是一個特殊的成員函數,名字與類名相同,創建類類型對象時由編譯器自動調用,保證每個數據成員都有一個合適的初始值,并且在對象的生命周期內只調用一次(創建對象)

作用:

創建一個對象(面向對象,第一步肯定得創建對象)并且數據成員都有初始數值(數值有初始化和賦值)

初始化和賦值區別

  • 初始化(數值在構建函數中給予)
  • 賦值(數值在構建函數完成之后給予)

初始化(數值在構建函數中給予)

#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.調用構造函數

2.創建對象名字為c1

3.對象中數據成員與函數參數對應,進行數值給予,生成對象的數據成員順序是類中private的順序

4.對象c1創建成功

賦值(數值在構建函數完成之后給予)

#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.調用構造函數

2.創建對象名字為c1

3.構建函數中沒有初始化,編譯器自動加上初始化操作,對數據成員進行隨機數初始化

4.對象c1創建成功

5.函數中輸入的兩個參數,函數執行命令行,對數據進行賦值

如何得知兩則區別

tihs指針

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

在兩者構造函數中使用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

欄目分類
最近更新