作者sunneo (艾斯寇德)
看板C_and_CPP
標題Re: [問題] 物件繼承與實作的問題 問題在文末
時間Thu Apr 30 14:32:42 2009
我嘗試把 StartSameWidthLine::GetX2改成如下
inline const T& GetX2() const {
struct TWrapper{
typedef const T& constTref;
T val;
operator constTref(){
return val;
}
TWrapper(const T& t1,const T& t2){
val = t1+t2;
}
};
return TWrapper(m_x1,m_width);
}
於是就過了@@
不過另外一個inline pure virtual的警告可能只能把inline拿掉了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.39.200.102
1F:→ sunneo:不過說實在的這只是逃避compiler的錯誤 04/30 14:34
※ 編輯: sunneo 來自: 114.39.200.102 (04/30 15:05)
2F:推 chrisdar: return (const T&)(m_x1 + m_width); 我想起兩個方法 04/30 15:14
3F:→ chrisdar: return static_cast<const T&>(m_x1 + m_width); 04/30 15:14
4F:→ chrisdar: 說真的 這只是逃避compiler的錯誤 04/30 15:14
5F:→ sunneo:喔喔 這個我沒辦法在我的mingw使用 因為這個warning 04/30 15:41
6F:→ sunneo:不讓我過 但用建構子就過了 不曉得怎會有這樣的差別 04/30 15:42
7F:→ sunneo:但結果不是對的 回傳後結果會一團亂 04/30 15:47
8F:推 legnaleurc:當你對編譯器撒謊, 它會對你復仇? XD 04/30 16:14
9F:推 chrisdar: ^^ 這個經典 04/30 16:38
10F:→ chrisdar:根據各方的意見 決定採用(#19-JrOLY)方法二 04/30 18:20
11F:→ sunneo:我發現他有改變val值,但傳回getx2的是未改變的val值... 04/30 19:00