c 過載運算子,怎麼寫乙個數字乘某乙個類?

2025-02-18 09:40:17 字數 2284 閱讀 6210

1樓:網友

你對過載有誤解,過載技術本來就是為了實現類物件之間可以直接運算而發明的。數字或者變數直接函式呼叫不就完了,根本不需要用到過載。

恰巧我年輕時候嘗試寫過3d遊戲引擎,雖然最終沒實現,但是基礎類我還在,當時也是為了學習3d頂點變換原理,在win32空白框架上開發的,那我就複製矩陣類的部分**給你看看,**沒優化過。

兩個矩陣運算相乘(過載)用於建立複合矩陣,比如平移,旋轉,縮放等等,方便之後再用模型的頂點與之變換,減少動畫計算量。

直接傳遞頂點/向量進行變換,不需要用過載。

傳遞頂點/向量物件進行變換。

2樓:格里程式設計辦公技巧

這個問題你可以採用兩個過載函式來解決。

可以用乙個類成員函式 + 乙個友元函式:

一、類在前可以使用成員函式過載:matrix matrix::operator*(int n)/ 實現**。

二、數字在前使用友元函式過載:在類中加上宣告。

類外加實現**:

實現**。

c++中運算子[]只能用什麼運算子來過載

3樓:網友

過載操作符:

1. 雙目操作符,第一運算元是過載此操作符的物件,第二運算元是無符號下標。

2. c++不允許把下標操作符函式作為外部函式來定義,它只能是非靜態的成員函式。

3. 為了能對陣列賦值,一般將返回值宣告為引用型別。

#include

#include

#include

#include

#include

using namespace std;

class data1d

return data1d[idx];

friend ostream& operator<<(ostream&, data1d&);

ostream& operator<<(ostream& o, data1d& mydata1d){

cout <<"data(" <<"):\t";

for (int i=0; i

4樓:網友

什麼叫能用什麼運算子過載?難道不是自己麼?

c++的所有運算子都可以過載嗎?

5樓:金色潛鳥

大部分可以重猛稿載,例如:

算術運算子:+,位操作運算子:&,邏輯運算子:!,比較運算子:<,賦值運算子:=,消知凱<=,其他運算子:逗號運算子),new,delete,new,delete,不允許過載的有:

分量運算子 點號。

成員物件選擇 點星號。

作用域解析 雙冒號。

條件運算子 問號冒號拿喚,.*

可能還有吧。

6樓:胡說八道小鬼

大多數c++運算子可以過載。運算子過載是一種形式的c++多型。運算子過載將過載的概念擴充套件到運算子上,允許賦予c++運算子多種含義。

單目運算子過載:

單目運算子只有乙個運算元,如!a,-b,&c,*p,還有最常用的++i和--i等。由於單目運算子只有乙個運算元,因此運算子過載函式只有乙個引數,如果兆衝運算子過載函式作為成員函式,則還可省略此引數。

下面以自增運算子」++為例,介紹單目運算子的過載。

例] 有乙個time類,包含資料成員minute(分)和sec(秒),模擬秒錶液猜陪,每鬧蠢次走一秒,滿60秒進一分鐘,此時秒又從0開始算。要求輸出分和秒的值。

可以看到:在程式中對運算子「++進行了過載,使它能用於time類物件。「+和「--運算子有兩種使用方式,前置自增運算子和後置自增運算子。

針對「++和「--這一特點,c++約定,在自增(自減)運算子過載函式中,增加乙個int型形參,就是後置自增(自減)運算子函式。

雙目運算子過載:

雙目運算子(或稱二元運算子)是c++中最常用的運算子。雙目運算子有兩個運算元,通常在運算子的左右兩側,如3+5,a=b,i<10等。在過載雙目運算子時,不言而喻在函式中應該有兩個引數。

例] 定義乙個字串類string,用來存放不定長的字串,過載運算子「==和「>」用於兩個字串的等於、小於和大於的比較運算。

有了這個基礎後,再增加其他必要的內容。現在增加對運算子過載的部分。為便於編寫和除錯,先過載乙個運算子「>」程式如下:

程式執行結果為1。

這只是乙個並不很完善的程式,但是,已經完成了實質性的工作了,運算子過載成功了。其他兩個運算子的過載如法炮製即可。

請問C中過載運算子函式時為什麼加那麼多

代表引用,形參是引用 非const型 時,就是將該物件自己傳遞進函式了 返回值是 時用在運算子的返回值是左值時,常用有這幾個 所有的賦值 包括複合賦值 字首自加自減,下標運算子 c 中為什麼過載前置 運算子要加個 plex plex operator 返回一 copy 個引用即bai代表當前du物件...

關於C語言自加運算子 的一個問題

在前先 在後後 你記住這個就好做題啦。int a 1,b 1 a a b b b a b a a b要先算 a,a 2.在算a 2 b 2 1 3b同上。int a 2,b 1 a a b 這個輸出a的值是3.要先算a a b 3.後算a a b相當於 a b a 不同的編譯器會產生不同的結果所以儘...

c語言判斷數是否為整數c語言判斷一個數是否為整數

使用截尾函式可以驗證!截尾函式是指將小數點後面的全部丟掉!所以,如果是整數的話,那麼截去小數點後面的應該等於原來的這個數字 否則,便不是整數!截尾函式 trunc x 判斷 if trunc x x then 翻譯 如果x是整數的話 望採納!以判斷n開根號後是否是整數為例 include inclu...