欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

第四層:友元與函數(shù)成員別樣定義-創(chuàng)新互聯(lián)

文章目錄
  • 前情回顧
  • 友元
    • 友元的概念
    • 友元的目的
    • 友元的關鍵字
    • 友元的兩種種用法
      • 全局函數(shù)做友元
      • 類做友元
  • 函數(shù)成員的別樣定義
  • 有緣人學友元,急速突破第四層
  • 本章知識點(圖片形式)

網(wǎng)站建設公司,為您提供網(wǎng)站建設,網(wǎng)站制作,網(wǎng)頁設計及定制網(wǎng)站建設服務,專注于企業(yè)網(wǎng)站設計,高端網(wǎng)頁制作,對酒店設計等多個行業(yè)擁有豐富的網(wǎng)站建設經(jīng)驗的網(wǎng)站建設公司。專業(yè)網(wǎng)站設計,網(wǎng)站優(yōu)化推廣哪家好,專業(yè)seo優(yōu)化優(yōu)化,H5建站,響應式網(wǎng)站。

🎉welcome🎉
??博主介紹:一名大一的智能制造專業(yè)學生,在學習C/C++的路上會越走越遠,后面不定期更新有關C/C++語法,數(shù)據(jù)結構,算法,Linux,ue5使用,制作游戲的心得,和大家一起共同成長。
??C++專欄:C++爬塔日記
😘博客制作不易,👍點贊+?收藏+?關注

前情回顧

上回到,在進入第三層后,我學習了隱藏在編譯器內(nèi)的一種神秘力量——this指針,this指針可以讓編譯器分清是哪個對象在調(diào)用類內(nèi)的成員函數(shù),同時,隨著層數(shù)的增高,我對C++的理解越來越深,也越來越發(fā)覺C++的恐怖…

  • 🚄上章地址:第三層:C++對象模型和this指針
友元

“上到這里來,你也是一個有緣人了,老夫看你有大機緣在身,這層內(nèi)容不難,友元,有緣人祝你好運,哈哈哈哈哈…”這道聲音在我踏入到第四層的那一刻響起,“有緣,友元嗎?”我小聲嘀咕著,看向了面前的石碑上。

友元的概念

在生活中,每個人都有一些可以讓大眾知道并且訪問的,比如名字,也有一些是不想讓大眾訪問的,比如手機、汽車這些私密物品,但是如果經(jīng)過本人同意,該人的好朋友就可以對私密物品進行訪問,同樣,在C++中,也有私有屬性(private),可以讓類外一些特殊的函數(shù)或者類進行訪問,而這些特殊的函數(shù)或者類就需要用到友元。

友元的目的
  • 友元的目的就是讓一個函數(shù)或者類訪問另一個類內(nèi)的私有成員
友元的關鍵字
  • 友元的關鍵字是friend,也就是中文的朋友。
友元的兩種種用法
  1. 全局函數(shù)做友元
  2. 類做友元
全局函數(shù)做友元

當程序員想讓全局函數(shù)訪問一個類內(nèi)的私有屬性時,只需要將函數(shù)聲明在類內(nèi)的最上方,并且在函數(shù)發(fā)返回類型之前加上友元的關鍵字friend

#include#includeusing namespace std;

class person
{friend void test1();
public:
	person()
	{_name = "張三";
		_car = "奧迪A8";
		_phone = "iphone 100 por max";
	}
	string _name;
private:
	string _car;
	string _phone;
};

void test1()
{person p1;
	cout<< "現(xiàn)在在訪問:"<< p1._name<< endl;
	cout<< "現(xiàn)在在訪問:"<< p1._name<< "的"<< p1._car<< endl;
	cout<< "現(xiàn)在在訪問:"<< p1._name<< "的"<< p1._phone<< endl;
}
int main()
{test1();
	return 0;
}

在這里插入圖片描述
那這里可能會有人有疑問,是不是直接在類內(nèi)聲明就可以,不加前面friend是不是也可以訪問?實驗一下:

#include#includeusing namespace std;

class person
{void test1();
public:
	person()
	{_name = "張三";
		_car = "奧迪A8";
		_phone = "iphone 100 por max";
	}
	string _name;
private:
	string _car;
	string _phone;
};

void test1()
{person p1;
	cout<< "現(xiàn)在在訪問:"<< p1._name<< endl;
	cout<< "現(xiàn)在在訪問:"<< p1._name<< "的"<< p1._car<< endl;
	cout<< "現(xiàn)在在訪問:"<< p1._name<< "的"<< p1._phone<< endl;
}
int main()
{test1();
	return 0;
}

在這里插入圖片描述
可以看到報錯是不可訪問,所以證明,不僅僅需要在類內(nèi)聲明函數(shù)還需要加上關鍵字friend。

類做友元

類做友元,通過表面意思得知,是讓一個類做另一個類的友元,然后可以用友元這個類訪問把它當作友元的這個類,要注意的來了:

  1. 要訪問的話,需要讓當作友元這個類成為友元類內(nèi)的一個對象成員,這個對象成員
    好是個指針,在創(chuàng)建對象時,利用new操作符申請一塊對象成員大小的空間讓指針指向
  2. 注意,因為使用了new操作符,在程序快要結束的時候,記得使用delete釋放空間,并且對指針進行置空,以免造成野指針
#include#includeusing namespace std;

class person1;

class person
{friend class person1;
public:
	person()
	{_name = "張三";
		_car = "奧迪A8";
		_phone = "iphone 100 por max";
	}
	string _name;
private:
	string _car;
	string _phone;
};
class person1
{public:
	void test()
	{cout<< "現(xiàn)在訪問的是:"<< p->_name<< endl;
		cout<< "現(xiàn)在訪問的是:"<< p->_name<< "的"<<  p->_car<< endl;;
		cout<< "現(xiàn)在訪問的是:"<< p->_name<< "的"<< p->_phone<< endl;;
	}
	person *p;
};
void test1()
{person1 pp1;
	pp1.p = new person;
	pp1.test();
	delete pp1.p;
	pp1.p = NULL;
}
int main()
{test1();
	return 0;
}

在這里插入圖片描述

函數(shù)成員的別樣定義

函數(shù)成員其實也可以在類外進行定義,是什么意思呢?其實就是將函數(shù)成員在類內(nèi)進行聲明,在類外進行定義,定義時同樣要讓編譯器知道是類內(nèi)成員,所以也要在函數(shù)名前加類名::類外聲明寫法是

返回值 類名::函數(shù)名 ();
當時構造函數(shù)時
類名::類名 ();

可以進行驗證:

#include#includeusing namespace std;

//class person1;
//
class person
{public:
	person();
	void test1();
	string _name;
	string _car;
	string _phone;
};

person::person()
{_name = "張三";
	_car = "奧迪A8";
	_phone = "iphone 100 por max";
}
void person::test1()
{cout<< "現(xiàn)在訪問的是:"<< _name<< endl;
	cout<< "現(xiàn)在訪問的是:"<< _name<< "的"<< _car<< endl;
	cout<< "現(xiàn)在訪問的是:"<< _name<< "的"<< _phone<< endl;
	
}

int main()
{person p1;
	p1.test1();
	return 0;
}

在這里插入圖片描述
可以看到時正常運行的。

有緣人學友元,急速突破第四層

巨大石碑轟然倒塌,一陣煙土飄起,散去之后,只見一個身影向第五層走去…

本章知識點(圖片形式)

在這里插入圖片描述

😘預知后事如何,關注新專欄,和我一起征服C++這座巨塔
🚀專欄:C++爬塔日記
🙉都看到這里了,留下你們的👍點贊+?收藏+📋評論吧🙉

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)站欄目:第四層:友元與函數(shù)成員別樣定義-創(chuàng)新互聯(lián)
文章分享:http://chinadenli.net/article6/ejgig.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供自適應網(wǎng)站商城網(wǎng)站微信公眾號網(wǎng)頁設計公司網(wǎng)站收錄標簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站