国产探花免费观看_亚洲丰满少妇自慰呻吟_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++中的繼承

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

圖片精選

主站蜘蛛池模板: 定陶县| 武强县| 监利县| 杭锦后旗| 满城县| 靖州| 旬阳县| 平潭县| 泾阳县| 安平县| 微博| 和平区| 新平| 克拉玛依市| 甘洛县| 双流县| 绥化市| 景德镇市| 元阳县| 江都市| 海口市| 赤城县| 南雄市| 白河县| 井研县| 梧州市| 宜君县| 达尔| 朝阳区| 靖边县| 岗巴县| 合肥市| 布尔津县| 西乌| 方山县| 龙海市| 邵东县| 当涂县| 清河县| 珠海市| 绥中县|