程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> c++運算符重載基本常識詳解

c++運算符重載基本常識詳解

編輯:關於C++

c++運算符重載基本常識詳解。本站提示廣大學習愛好者:(c++運算符重載基本常識詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是c++運算符重載基本常識詳解正文


現實上,許多C++運算符曾經被重載。eg:將*運算符用於地址,將獲得存儲在這個地址中的值,將他用於2個數字時,獲得的將是他們的乘積。C++依據操作數的數量和類型來決議采取哪一種操作。

C++許可將運算符重載擴大到用戶界說的類型。例如,許可應用+將兩個對象相加。編譯器將依據操作數的數量和類型決議應用加法界說。運算符重載可使代碼看起來更天然。例如,將2個數組相加是一種罕見的運算。平日,須要應用上面如許的for輪回來完成:

for (int i = 0; i < 20; i++)
evening[i] = sam[i] + janet[i]; // add element by element

但在C++中,可以界說一個表現數組的類,偏重載+運算符,因而便有如許的語句:

total = arr1+arr2;
一個盤算時光的例子
mytime.h


#include"stdafx.h"
#include"MyTime.h"
#include<iostream>

int_tmain(intargc,_TCHAR*argv[])
{
//比導入全部稱號空間更經濟
usingstd::cout;
usingstd::endl;

Timeplanning;
Timecoding(2,50);
Timefixing(5,55);
Timetotal;
cout<<"planningtime=";
planning.Show();
cout<<endl;
cout<<"codingtime=";
coding.Show();
cout<<endl;
cout<<"fixingtime=";
fixing.Show();
cout<<endl;
total=coding.Sum(fixing);
cout<<"coding.Sum(fixing)=";
total.Show();
cout<<endl;
total=coding+fixing;
cout<<"coding+fixing=";
total.Show();
cout<<endl;
getchar();
return0;
}

挪用


#include"stdafx.h"
#include"MyTime.h"
#include<iostream>

int_tmain(intargc,_TCHAR*argv[])
{
//比導入全部稱號空間更經濟
usingstd::cout;
usingstd::endl;

Timeplanning;
Timecoding(2,50);
Timefixing(5,55);
Timetotal;
cout<<"planningtime=";
planning.Show();
cout<<endl;
cout<<"codingtime=";
coding.Show();
cout<<endl;
cout<<"fixingtime=";
fixing.Show();
cout<<endl;
total=coding.Sum(fixing);
cout<<"coding.Sum(fixing)=";
total.Show();
cout<<endl;
total=coding+fixing;
cout<<"coding+fixing=";
total.Show();
cout<<endl;
getchar();
return0;
}

履行成果

重點講授
1.sum函數中將參數聲明為援用,可以進步運轉效力,節儉內存

2.sum函數中,前往值不克不及是援用。由於sum對象是部分變量,在函數停止時將被刪除,是以援用將指向一個不存在的對象。應用前往類型Time意味著在刪除sum之前結構他的拷貝,挪用函數將獲得他的拷貝。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved