PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] 重載[][] 下標運算子(架構已定)
作者:
hunandy14
(Charlott.HonG)
2016-11-03 18:05:49
程式碼連結:https://goo.gl/t7nEkR
class raw{
private:
unt x;
unt y;
unt len;
vector<uch> img;
}
可以做到
raw a(3, 3);
cout << a[n] << endl;
或是
a[n] = x;
剛好就讀取道 img 對應的位置沒問題
可是我如果想要用二維的方式讀取自己寫了
a.at2d(x, y);
如果圖是[3x3]
那麼 a.at2d(1, 0);
可以讀寫img[3]
現有結構有方法可以把
a.at2d(1, 0);
置換成
a[1][0]
又不影響
a[pos] 嗎?
作者:
shadow0326
(非議)
2016-11-03 18:42:00
拉出class row,重載uch& row::operator []以及重載row& raw::operator[]啊我沒有看到不影響a[pos]的需求 唔可能可以再讓row能隱式轉換成uch 我覺得很醜就是了
作者:
CoNsTaR
((const *))
2016-11-03 19:09:00
如果我理解沒錯的話 你想要用一樣的話做兩件不同的事 你覺得有辦法嗎…
作者:
Caesar08
(Caesar)
2016-11-03 19:48:00
return一個別的class,支援conversion function與operator[]
作者:
ilikekotomi
(Young)
2016-11-03 22:56:00
凱薩大大講的可以看書 more effective C++裡面有個proxy class在講這件事情 我臨時找不到code
作者:
CoNsTaR
((const *))
2016-11-03 23:17:00
咦…原Po的意思不是用[][]的時候把a當作二維,用[]的時候當作一維嗎?
作者:
ilikekotomi
(Young)
2016-11-03 23:19:00
http://ideone.com/eTTHNU
剛剛大概回想一下因為[][]沒辦法重載所以要分兩段不知道是不是會錯意沒看到沒看到又不影響a[pos]原PO講的情況用( )做會比較簡單 要不影響有我沒想到
作者:
Caesar08
(Caesar)
2016-11-04 00:36:00
http://ideone.com/Tm4Bgk
我覺得這不是好寫法。今天要是用3-d array,用一個[]與三個[],都能知道是甚麼意思。那如果用兩個[],請問是?用明確一點的function來存取會比你只用[]好
作者:
ilikekotomi
(Young)
2016-11-04 01:31:00
明天也來看一下 感謝凱薩大大示範
作者:
Caesar08
(Caesar)
2016-11-04 11:19:00
是的。不過再額外提供operator=給assign value比較好
作者:
ilikekotomi
(Young)
2016-11-04 20:14:00
感謝凱薩大大的回覆 又學到了一課
繼續閱讀
[問題] 請問關於a=a++的問題
cat99961
[問題] 畫面顯示and檔案讀寫 timer問題
checkIO
[問題] opencv 找特徵點
eleasm
[問題] 這個ret2text的exploit問題
b0920075
[問題] qt結合opencv顯示kinectv2的畫面卻失敗
GermanGerm
[問題] vector.clear() seg fault
fishlinghu
[問題] UDP client發送接收分兩個檔案寫
s890269
[問題] 請問如何使用FFMPEG將jpg轉成420格式?
evilkiss
[問題] 1/階層的倒數累加問題
yahhhhhh
[問題] CSV -> ZIP問題
checkIO
Links
booklink
Contact Us: admin [ a t ] ucptt.com