[問題] 想問程式碼class內用法的問題

作者: pin85315 (SickCat)   2018-01-13 00:59:07
首先網址在這邊,我不太確定這算不算伸手文
第一次來發文有點怕怕的
https://tinyurl.com/y75koa32
這個程式在DEV C++上是可以跑的
簡單來說就是使用者輸入1~6,程式會幫你加字減字
然後再印出
輸入1、2這兩個完全沒問題,純粹是ASCII的問題
但是從problem3~problem6就看不太懂了...
想問幾個很基本的問題,還請大大們幫忙
"全部都以problem3為例子"
1.在cout上面的那幾行
他所謂的gStrInput1->Iowa();意思應該是用gStrInput1去呼叫Iowa吧
也就是把值帶入Iowa函式內對吧?
但是他為什麼要做這麼多次?
同樣是gStrInput1的有->Iowa()跟->NewYork(gStrInput2->Iowa())
這樣寫是為了什麼目的?
2.gStrInput1->NewYork(gStrInput2->Iowa())這行我看不懂....
是要把gStrInput2->Iowa()得出來的結果再帶回NewYork嗎?
3.這題答案印出來是 'T' 'h' "at" 'i' 's' "the"
我想問的是為什麼第一個字元跟第二個字元同樣都是cout一樣的東西
印出來卻是不同的結果?
第四個字元跟第五個字元也是,cout一樣的東西卻是不同結果
是跟cout上面那幾排(gStrInput1->Iowa())有關係嗎?
還是跟前面的副程式有關係?
4.我現在大概知道,California是把一段字串縮減成1個字元
那為什麼第一個字元是'T',是怎麼看的?
因為他的currentPos是在1嗎? 那為什麼第二個字元又是h呢?
希望大大能大概跟我說一下答案是怎麼來的....
以上應該都是蠻基本的問題,不過小弟接觸C++沒多久
希望有大大能幫忙解惑一下,在此先感謝了
作者: steve1012 (steve)   2018-01-13 14:09:00
這感覺應該是什麼作業吧 感覺是要你熟悉functions被呼叫的流程 我只有看一下你的第三題 原因是因為California 把裡面的mCurrentPos 移動了 (line 181, mCurrentPos++) 然後他每次回傳都是移動前的位置 所以兩次呼叫回傳的東西不一樣
作者: pin85315 (SickCat)   2018-01-14 01:01:00
謝謝! 目前問題大致上已解決了

Links booklink

Contact Us: admin [ a t ] ucptt.com