亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

詳解C++中的函數調用和下標以及成員訪問運算符的重載

2020-05-23 14:09:50
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了詳解C++中的函數調用和下標以及成員訪問運算符,講到了這些二元運算符使用的語法及重載,需要的朋友可以參考下
 

函數調用
使用括號調用的函數調用運算符是二元運算符。
語法

primary-expression ( expression-list )

備注
在此上下文中,primary-expression 為第一個操作數,并且 expression-list(可能為參數的空列表)為第二個操作數。函數調用運算符用于需要大量參數的操作。這之所以有效,是因為 expression-list 是列表而非單一操作數。函數調用運算符必須是非靜態成員函數。
函數調用運算符在重載時不會修改函數的調用方式;相反,它會在運算符應用于給定類的類型的對象時修改解釋該運算符的方式。例如,以下代碼通常沒有意義:

Point pt;pt( 3, 2 );

但是,如果存在一個適當的重載函數調用運算符,則此語法可用于將 x 坐標偏移 3 個單位并將 y 坐標偏移 2 個單位。下面的代碼顯示了這樣的定義:

// function_call.cppclass Point{public:  Point() { _x = _y = 0; }  Point &operator()( int dx, int dy )    { _x += dx; _y += dy; return *this; }private:  int _x, _y;};int main(){  Point pt;  pt( 3, 2 );}

請注意,函數調用運算符適用于對象的名稱,而不是函數的名稱。
也可以使用指向函數的指針(而非該函數本身)重載函數調用運算符。

typedef void(*ptf)();void func(){}struct S{  operator ptf()  {   return func;  }};int main(){  S s;  s();//operates as s.operator ptf()()}

下標
下標運算符 ([ ])(如函數調用運算符)被視為二元運算符。下標運算符必須是采用單個參數的非靜態成員函數。此參數可以是任何類型,并指定所需的數組下標。
以下示例演示如何創建用于實現邊界檢查的 int 類型的矢量:

// subscripting.cpp// compile with: /EHsc#include <iostream>using namespace std;class IntVector {public:  IntVector( int cElements );  ~IntVector() { delete [] _iElements; }  int& operator[]( int nSubscript );private:  int *_iElements;  int _iUpperBound;};// Construct an IntVector.IntVector::IntVector( int cElements ) {  _iElements = new int[cElements];  _iUpperBound = cElements;}// Subscript operator for IntVector.int& IntVector::operator[]( int nSubscript ) {  static int iErr = -1;  if( nSubscript >= 0 && nSubscript < _iUpperBound )   return _iElements[nSubscript];  else {   clog << "Array bounds violation." << endl;   return iErr;  }}// Test the IntVector class.int main() {  IntVector v( 10 );  int i;  for( i = 0; i <= 10; ++i )   v[i] = i;  v[3] = v[9];  for ( i = 0; i <= 10; ++i )   cout << "Element: [" << i << "] = " << v[i] << endl;}Array bounds violation.Element: [0] = 0Element: [1] = 1Element: [2] = 2Element: [3] = 9Element: [4] = 4Element: [5] = 5Element: [6] = 6Element: [7] = 7Element: [8] = 8Element: [9] = 9Array bounds violation.Element: [10] = 10

注釋
當 i 在前一個程序中達到 10 時,operator[] 將檢測是否在使用超出邊界的下標并發出錯誤消息。
請注意,函數 operator[] 將返回引用類型。這會使它成為左值,從而使您可以在賦值運算符的任何一側使用下標表達式。

成員訪問
類成員訪問可通過重載成員訪問運算符 (–>) 來控制。此運算符被視為此用法中的一元運算符,而重載運算符函數必須是類成員函數。因此,此類函數的聲明是:
語法

class-type *operator–>()

備注
其中,class-type 是此運算符所屬的類的名稱。成員訪問運算符函數必須是非靜態成員函數。
此運算符(通常與指針取消引用運算符一起使用)用于實現在取消引用用法或對用法計數前驗證指針的“智能指針”。
無法重載 . 成員訪問運算符。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情第1页| 青草热久免费精品视频| 成人精品视频99在线观看免费| 亚洲国产精品va在线看黑人动漫| 成人在线视频网站| 在线精品视频视频中文字幕| 日韩欧美国产中文字幕| 日韩在线观看免费全| 国产午夜精品理论片a级探花| 国产精品一区二区三区在线播放| 欧美大片第1页| www.日韩.com| 国产成人精品视频在线| 中文字幕日本精品| 九九九久久国产免费| 黄色一区二区三区| 91热福利电影| 国产综合福利在线| 国产成人精品网站| 中文字幕亚洲一区二区三区五十路| 久久久久久伊人| 日韩欧美在线视频日韩欧美在线视频| 91色琪琪电影亚洲精品久久| 欧美一区二区视频97| 欧洲美女7788成人免费视频| 欧美成人合集magnet| 国产精品女主播| 亚洲人成在线观看网站高清| 国产精品99久久99久久久二8| 91国产精品视频在线| 久久国产加勒比精品无码| 欧美日韩精品在线观看| 亚洲久久久久久久久久| 插插插亚洲综合网| 国产精品吹潮在线观看| wwwwwwww亚洲| 在线观看欧美日韩国产| 国产精品美女主播| 国模私拍视频一区| 色噜噜狠狠狠综合曰曰曰88av| 欧美性猛交xxxx黑人| 亚洲在线视频福利| 777精品视频| 国产91九色视频| 亚洲一区二区三区在线视频| 96精品久久久久中文字幕| 国产精品视频网| 国产丝袜一区二区三区免费视频| 欧美一区二区影院| 久久资源免费视频| 国内精品久久久久久中文字幕| 亚洲一区二区久久久久久久| 亚洲色图美腿丝袜| 日韩av最新在线| 亚洲视频日韩精品| 久久久久99精品久久久久| 久久精品视频导航| 久久久97精品| 成人动漫网站在线观看| 欧美麻豆久久久久久中文| 国产一级揄自揄精品视频| 亚洲免费av电影| 亚洲国产成人一区| 在线观看国产精品淫| 欧美综合国产精品久久丁香| 在线精品播放av| 久久视频在线观看免费| 福利一区视频在线观看| 亚洲free性xxxx护士hd| 欧美国产日本高清在线| 亚洲欧洲高清在线| 久久69精品久久久久久国产越南| 国内免费精品永久在线视频| 欧美日韩一区二区免费在线观看| 亚洲一区美女视频在线观看免费| 欧美大片在线看| 国产97色在线|日韩| 中文字幕欧美日韩va免费视频| 51ⅴ精品国产91久久久久久| 欧美午夜无遮挡| 成人做爽爽免费视频| 日韩av手机在线观看| 久久精品久久久久久国产 免费| 欧美成人在线免费视频| 欧美日韩一区二区精品| 热久久99这里有精品| 国产午夜精品免费一区二区三区| 亚洲伊人久久综合| 高清欧美性猛交xxxx黑人猛交| 日韩电影视频免费| 中文字幕亚洲一区二区三区五十路| 国产午夜精品美女视频明星a级| 久久国产精品久久久久久久久久| 国产一区二区三区在线观看视频| 在线成人免费网站| 欧美日韩国产成人高清视频| 美女性感视频久久久| 精品亚洲男同gayvideo网站| 97视频在线观看网址| 日韩精品在线看| 久久精品男人天堂| 日韩动漫免费观看电视剧高清| 97免费中文视频在线观看| 51精品国产黑色丝袜高跟鞋| 国产精品高精视频免费| 亚洲电影在线看| 最新国产精品亚洲| 色视频www在线播放国产成人| 91精品国产沙发| 97视频在线观看免费高清完整版在线观看| 欧美在线一区二区三区四| 久久久久久午夜| 欧美精品在线观看| 中文字幕日韩电影| 国产精品在线看| 久久伊人91精品综合网站| 亚洲免费一级电影| 亚洲色图狂野欧美| 日日骚久久av| 在线观看中文字幕亚洲| 欧美在线亚洲一区| 伊人久久综合97精品| 精品调教chinesegay| 草民午夜欧美限制a级福利片| 国产精品99久久久久久白浆小说| 久久精品国产96久久久香蕉| 日韩高清电影免费观看完整版| 亚洲免费电影在线观看| 国产手机视频精品| 日韩精品免费在线| 国产精品成人国产乱一区| 韩国v欧美v日本v亚洲| 亚洲亚裔videos黑人hd| 欧美日韩中文字幕在线| 亚洲欧洲日产国产网站| 亚洲精品videossex少妇| 成人黄色在线观看| 亚洲一区美女视频在线观看免费| 7777精品视频| 日韩有码在线电影| 国产精品三级网站| 最近2019年中文视频免费在线观看| 4438全国成人免费| 91亚洲va在线va天堂va国| 亚洲精品中文字幕av| 日韩av在线播放资源| 久热精品视频在线| 亚洲欧美日韩一区二区三区在线| 国产精品久久久久久av下载红粉| 97精品久久久中文字幕免费| 亚洲国产精品人久久电影| 欧美激情视频在线观看| 国产精品久久久久一区二区| 97精品在线观看| 亚洲精品不卡在线| 欧美日韩国产在线播放| 精品久久久久久久久久久久久久| 日韩久久精品成人| 国内精品视频在线| 日本精品性网站在线观看| 国产99久久精品一区二区 夜夜躁日日躁| 中文字幕久热精品视频在线| 亚洲男女自偷自拍图片另类| 欧美高跟鞋交xxxxhd|