C 編繹問題

2022-09-23 09:21:50 字數 582 閱讀 5006

1樓:匿名使用者

關於第一個錯誤:如果相關定義齊全的話 這個函式是沒有錯的也就是說 錯不在這個函式

至於第二個錯誤 那更是別處的錯誤 通常這個錯誤都是由於大括號不配對之類引起的

你應該檢查一下你的cfraction類的定義 尤其是cfraction::cfraction(int, int)cfraction::operator int(void)這兩個函式

另外 cfraction::operator +(int a)這個函式你沒有明確給出返回值型別的定義 這樣會預設為int 恐怕這是不符合你的意圖的

2樓:康邦世英悟

這麼改試試

cfraction

cfraction::operator

+(int

a)出錯原因估計是你的return

cfraction

temp(below*a+above,below);這一句tmp這裡是個區域性變數,返回tmp類後函式馬上就會把類tmp銷燬,致使後面的呼叫會失敗,如果用new分配空間後就不會被銷燬。

但是這個問題在一般不會發生在編譯階段,你還得找找前面**的問題。