国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++之“this指針”

2019-11-06 07:20:36
字體:
來源:轉載
供稿:網友

this指針有兩個很重要的應用。

一,隱式和顯式的使用this指針訪問對象的數據成員

二,使用this指針使得串聯的調用函數成為可能

應用一:

#include<iostream>using namespace std;class Test{public:	Test(int=10);//構造函數	void PRint();private:	int x;};void Test::print(){	cout << "        x:" << x;//隱式地調用this指針打印x;	cout << "/n  this->x:" << this->x;//顯式地調用this指針打印x;	cout << "/n(*this).x:" << (*this).x << endl;//顯式地調用this指針打印x;}Test::Test(int val)	:x(val){}int main(){	 Test t(12);	t.print();}

注意:當*this與圓點成員選擇運算符一起使用時,括住*this的圓括號。這對括號是必須的,因為圓點運算符具有比*運算符更高的優先級啊。如果不使用的話,表達式*this.x將被認為與*(this.x)是一樣的,進行求值會導致邏輯錯誤。

應用二:使用this指針使得串聯的調用函數成為可能

#include<iostream>#include<string>#include<iomanip>#include<ctime>#include<cstdlib>using namespace std;class Time{public:	Time(int = 0, int = 0, int = 0);//構造函數	Time &setTime(int, int, int);//獲取時間,注意類型為該類型的引用	Time &setHour(int);//設置小時,注意類型為該類型的引用	Time &setMinute(int);//設置分鐘,注意類型為該類型的引用	Time &setSecond(int);//設置秒,注意類型為該類型的引用	int getHour();//獲取小時	int getMinute();//獲取分鐘	int getSecond();//獲取秒	void print();//輸出時間private:	int hour;	int minute;	int second;};Time::Time(int h, int m, int s){	setTime(h, m, s);}Time &Time::setTime(int h, int m, int s){	setHour(h);	setMinute(m);	setSecond(s);	return *this;//必須返回this指針}Time &Time::setHour(int h){	hour = (h > 0 && h < 24) ? h : 0;	return *this;//必須返回this指針}Time &Time::setMinute(int m){	minute = (m > 0 && m < 60) ? m : 0;	return *this;//必須返回this指針}Time &Time::setSecond(int s){	second = (s > 0 && s < 60) ? s : 0;	return *this;}int Time::getHour(){	return hour;}int Time::getMinute(){	return minute;}int Time::getSecond(){	return second;}void Time::print(){	cout << setfill('0') << setw(2) << hour << ":"<<		setfill('0') << setw(2) << minute <<":"<<		setfill('0') << setw(2) << second << endl;}int main(){	Time t(12,23,65);	t.print();	t.setHour(20).setMinute(34).setSecond(35);//串聯的函數調用	t.print();}注意:程序中的setTime,setHour,setMinute,setSconde設置為Time類的引用,在實現是必須返回*this。


上一篇:C++學習筆記

下一篇:C++中的繼承

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 通州市| 赣榆县| 怀远县| 邓州市| 滦平县| 凤庆县| 云浮市| 韩城市| 鲜城| 宾阳县| 竹北市| 昌黎县| 阜阳市| 富宁县| 石门县| 封开县| 简阳市| 三门县| 桃园县| 龙川县| 普兰县| 南乐县| 宿松县| 林口县| 皋兰县| 伊春市| 桐庐县| 临邑县| 同德县| 丰都县| 阿克苏市| 喜德县| 田林县| 米易县| 莱西市| 松原市| 二连浩特市| 潮安县| 罗平县| 杭锦后旗| 深圳市|