C 中,為什麼「一般而言,將算術和關係操作符定義為非成員函

時間 2021-08-11 17:42:29

1樓:匿名使用者

其實隨便你怎麼定義都行,這麼做因為這是雙目運算子,如果定義為友元函式,那麼呼叫函式時,更符合習慣,不易出錯,僅此而已

2樓:

看書上的解答是與型別轉換有關係的,如果為成員函式,那麼你當2個不同型別相加的時候,你必須返回的是你的左邊的型別.

而在+正確的操作中,會發生算術轉換,將低位的轉換為高位的運算,返回高位的型別

如果你是成員函式,那麼必須返回的是你的類型別,而不是高位的型別,這樣應該會造成資料丟失

3樓:匿名使用者

非成員版本的過載操作符函式所需的形引數目與操作符使用的運算元數目相同;而成員版本所需的引數數目少一個,因為其中的一個運算元是被通過this指標隱式傳遞給呼叫函式的。

詳見c++ primer plus 第5版11.4當類定義了類型別轉換時,使用+運算子是左邊呼叫右邊,如果左邊剛好是可被轉化為類型別的引數,則作為友元函式時可以呼叫(因為兩個都是引數,可發生自動型別轉換),作為成員函式則不行,因為左邊不是一個類型別,也不能自動轉換。所以,要使得程式不發生意外錯誤,需定義成員函式的對稱版本,或者定義為友元函式。

你說,哪個**好?

詳見c++ primer plus 第5版11.6

學碩和專碩一般而言,哪個畢業比較容易?

學碩畢業更容易一些。因為學碩的學生往往能力非常的強,學習能力也非常的強,對待學習的態度也非常的認真嚴謹,所以更容易畢業。專碩畢業比較容易。這是因為專碩相當於是大專的學歷考上的研究生,畢業的話要比本科考上的研究生容易一些。學碩和專碩對畢業的要求是一樣的嗎?為什麼?不一樣,因為當時在學習的時候,開展的課...

一般初戀中的女生會想和男朋友發生性關係嗎

龍筱賏 初戀中的女生都很傻,她們的思想只侷限於牽手,最多可能也就是親吻。一般不會主動要求發生性關係,如果男生主動的話女生可能會同意。 樂清茗 想不想不是重要的,因為想是不要負責的,做不做才是最關鍵的,珍愛自己,把握幸福。等到披上嫁衣時再實踐才是幸福的。 煌灬清醉 不會吧,初戀也許是很美好。但也只限於...

為什麼結婚後 一般的婆媳關係都不好呢

現代人生活條件好了很多,跟婆婆住一起的不多了,婆媳關係相對也緩和了很多。有尖銳矛盾的多在農村共同居住 需要贍養的家庭裡。我們說把婆婆當成自己的父母一樣看待,其實不太可能。並不是說婆媳天生是敵人,而是人和人之間,別的關係都未必盡如人意,同事 鄰里 熟悉的都有合不來的,會敬而遠之。夫妻之間也會吵架,但床...