過載是c++靜態多型性的實現,不僅可以對函式進行過載,還可以對運算子進行過載,其中對圓括號()的過載容易引起混淆:
下面舉乙個例子,定義乙個box類,有x,y,z三個資料成員表示其長寬高,定義showvolume()函式顯示體積。
#include
using
namespace
std;
class box
int showvolume()//顯示長方體的體積
private:
int x;
int y;
int z;
};int main()
在物件申明的時候可以在物件名後面加上圓括號,寫入引數,此時呼叫的是建構函式。如果類沒有對圓括號進行過載,後面再使用物件名(),則編譯就會報錯。如上面的box1(1,1,1)就會報錯,定義圓括號過載之後,第二次呼叫box1(1,1,1)則沒有問題。
圓括號的過載簡化了程式碼量,但是在使用的時候要和建構函式區分開來。
博文說明
本博文為作者根據自身之經驗所創作,限於作者水平,錯誤疏漏在所難免。如果您發現文章中有任何不合適的地方,歡迎與作者聯絡。
如果萬幸博文為您認可,需要轉載或者其它操作,請與作者聯絡。
vector中的圓括號和花括號
1.圓括號和花括號 include include include using namespace std int main vectorv int2 10 cout vector v int endl for auto i v int cout i endl cout endl cout vect...
正則中圓括號 方括號 大括號 的區別和用法
之前遇到要用正則判斷輸入字串的小需求中遇到了問題,連續的字串不知道怎麼判斷。如郵箱結尾的.com cn net等。於是乎查閱資料 括號 括號是多個匹配,它把括號內的當做一組來處理,限制一些多選的範圍,比如上面的需求只能是com cn net結尾的用括號就是最好的選擇。括號能提取字串,如 com cn...
C 之過載陣列下標 與圓括號 運算子的方法
過載陣列下標運算子 include using namespace std class vector int operator int nindex 過載陣列下標運算子 private int m ngril 4 過載陣列下標運算子 int vector operator int nindex re...