日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

程设13次作业总结--运算符重载

發布時間:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 程设13次作业总结--运算符重载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第四題:
一。思路。做這道題非常的糾結,究其原因,主要還是對基本內容掌握的不夠扎實,就是幾個簡單的重載就寫成了這個樣子…………
(1)引用的問題
HugeInt operator+(HugeInt p);//重載+。兩個類相加的類型
HugeInt HugeInt::operator +(int num)
{
int i;
HugeInt r(0);
for ( i = 0; i < MAX ; i ++ )
{
??? r.value[i] += value[i] + num % 10;
??? if ( r.value[i] > 9 ){
??????? r.value[i] -= 10;
??????? r.value[i+1] ++;
??? }
??? num /= 10;
}
if ( value[len] ) len ++;
r.len = len;
return r;
}
如果寫成這個樣子HugeInt & operator(HugeInt p),就會報錯,因為可以看到,r是在函數中才定義的,但是傳值為引用的話,就是這樣
HugeInt & temp = r;也就是說temp和r公用一段內存空間,他們就是一個東西,但是因為temp是局部定義的,而隱含著的HugeInt & temp 斌斌不是在這

個函數中定義的,所以可能根本知不道任何東西,這是非常危險的,會報錯
這個改正的方法是
HugeInt r(0);把這句改為static HugeInt r(0);然后就可以定義為這個樣子HugeInt & operator(HugeInt p)

在錢能的書中詳細講述了函數返回值是引用時的一些情況

#include<iostream>

using namespace std;

float temp;

float fn1(float r)

{

temp=r*r;

return temp;

}

float &fn2(float r)

{

temp=r*r;

return temp;

}

int main()

{

float a=fn1(5.0);

float &b=fn1(5.0);

float c=fn2(5.0);

float &d=fn2(5.0);

return 0;

}

首先,請注意temp是全局量,這點很重要。

然后,需要明確函數返回值的方式,以最簡單的fn1為例,返回值是temp,但是編譯器并不直接返回temp,而是創建一個臨時變量t,然后把temp的值賦給t,

返回主函數之后,float a=fn1(5.0);其實就是float a=t;然后編譯器把t? delete掉

看第二種方式,此時就是說b和t指向的是同一段內存空間,但是我們知道編譯器在解釋完這一句話之后就會自動把臨時變量t? delete,那么這時t指向的是什么東西呢?有一些編譯器可能會對這種情況有特殊解釋,但是不能保證在每一個編譯器上都能解釋,所以這是很危險的寫法

此時最好寫為這樣(主函數中)float x=fn2(5.0);float &b=x;

第三種模式,此時不會創建新的內存空間,因為返回的是引用,編譯器默認為不生成臨時變量t而是直接賦值,所以會提高效率

第四種方式就是讓三種中的&c=t;但是如果temp不是全局量就會有問題!還是與二相同的問題

?

?

(2)c++規定重載++時,如果有形參參數中有int,就是后置自增,否則為前置自增。(int? 是沒有用的)

(3)

重載為普通函數時,參數個數為運算符目數
重載為成員函數時,參數個數為運算符目數減一。這兩條蠻重要的,加以留心!

第三題:

此題的有點歪,我想成了重載<<,但是實際上是沒有必要的,直接重載[],與()即可

轉載于:https://www.cnblogs.com/pkusirius/archive/2010/05/14/1735718.html

總結

以上是生活随笔為你收集整理的程设13次作业总结--运算符重载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。