NTUE-CS102 板


LINE

好像半睡不睡第二次課了hmm 上次是動態宣告,這次是結構 下次好像是鏈結串列...(遠目) 好啦,不管怎樣還是下一頁開始... 從動態宣告起,補一下上週內容QQ -- 動態宣告...就動態嘛(毆) 與一般靜態相比,主要差別是動態是在程式執行中才取用記憶體使用 而靜態宣告(int a)則是在程式啟動時從記憶體取得4bytes的記憶體這樣 最主要功能是精簡記憶體使用...在沒記憶體能用時很重要(瞇眼) 使用方式是利用一個指標去儲存new出來的記憶體位址 比如說,要動態宣告一個int變數 就要先形成一個int指標,再new一段記憶體、將位址傳給指標使用 如下面這一小段所示 : 這陣子修改排版習慣,看不習慣不好意思Q #include<iostream> using namespace std; int main(){ int *p; p = new int; delete p; } -- 因為是動態宣告出來的,所以也能夠自由釋放掉這段記憶體空間 就如前頁範例的delete (記憶體位置)這般 要記得的事情是:使用動態宣告請一定要有釋放掉的習慣這樣 其他要注意...因為是個記憶體位址 所以不要做蠢事去覆蓋掉位址記錄就好 像是這樣這段...就是個錯誤範例,第一次new出來的東西就會再也找不到了Q #include<iostream> using namespace std; int main(){ int *p; p = new int; cout << *p <<'\n'; p = new int; cout << *p <<'\n'; delete p; } -- 嗯,動態宣告大概就這樣吧 順便附一下上次小作業code當人生的紀錄 #include<iostream> using namespace std; int main(){ int *p; while (1) p = new int; } 結果是會自己停止,然後有個windows的警告提示 這個警告用cmd跑才看的到這樣...大概就是那個回報/不回報的cmd版本 : 一般int a[n];這種動態宣告在win 這個virtual不吃... : 針對這點我是覺得無所謂啦...反正C99這個新規定都接受了,跟隨時代嘛(毆) 此外,釋放陣列則是 delete a[]; -- 再來是今天不知不覺就說完的結構... 簡易來說,結構就是可以把 一整套東西 包成 一個 包裝 如此就能在宣告時比較容易去處理繁多而使用上互有關聯的變數、處理行為 像是作業這個成績單就是個例子... 一個人名對一份成績,累積一多要分成好幾個陣列宣告就是小小麻煩了點 因此,將針對一個人的所有變數包起來做為一個變數(?)去應用就能簡化行為 繁雜一點的用法我自己以前沒用過,所以大概就先這樣說明... 反正上到哪裡就怎樣說明好了(死) 不管怎樣,下一頁開始是語法與code... -- 結構大概是classstatic兩種,差別是前者預設屬性是private,後者是public 以現在接觸的範圍來說 可以這樣解釋publicprivate... : 當然,這不是個很正確的思考邏輯 public是種全域變數,可以給結構本身以外的東西修改數值 而private是區域變數,只能在結構裏面被修改 算了,用文字說明總覺得很麻煩(想) 一邊寫今日作業一邊說明 要求是有ID、有一項成績就好,所以不想太多應該會寫成 class stu{ int id; int grade; }; 更完整點可能會想像下頁這樣寫 -- #include<iostream> using namespace std; class stu{ int id; int grade; }; int main(){ stu studenta; studenta.id = 36; studenta.grade = 60; } 像這樣去試著指定成績...可是編譯會出現錯誤 因為private "不能" 從結構以外的地方去讀寫 所以在這裡要把id跟grade設為public,才能夠由外部使用... 習慣上是不會把變數設為public,習慣上(飛) -- 也就是把結構的部份改成 class stu{ public: int id; int grade; }; 這樣就能用上頁的作法去使用類別了 嗯...原則上類別的陣列也能像一般宣告方法去做 stu stuedents[38]; 這樣的宣告方式也是可接受的 不過老師不接受,所以就請往上看動態宣告的部份 用同樣的方式去宣告就好 stu *p; p = new stu[38]; -- 最後就是作業題目了...不防雷了 反正這時候應該也都該生出來,前面也寫完類別部份 剩下排序跟傳值...前者泡排不會寫真的該重修-___- 方便起見,不寫陣列...大概說明一下怎樣寫就好 #include<iostream> using namespace std; class stu{ int id; int grade; }; int main(){ stu studenta,studentb; studenta.id = 36; studenta.grade = 60; studentb.id = 40; studentb.grade = 90; } (下頁) -- 兩個替換當然還是要有tmp做傳遞 stu tmp; 傳值大概有兩種 一種是 tmp.id = studenta.id; tmp.grade = studenta.grade; 這種像過去程設的用法...可是既然是結構 就該用更精簡的手段 tmp = studenta; 這樣就能做傳遞了 所以說,如果只是要把上頁a.b做交換 寫法就是下頁這樣.. -- #include<iostream> using namespace std; class stu{ public: int id; int grade; }; int main(){ stu studenta,studentb; studenta.id = 36; studenta.grade = 60; studentb.id = 40; studentb.grade = 90; stu tmp; tmp = studenta; studenta = studentb; studentb = tmp; cout <<studenta.id <<'\t' <<studenta.grade <<'\n'; cout <<studentb.id <<'\t' <<studentb.grade <<'\n'; } -- 有夠難看...硬塞一頁就變得很噁心了 不好意思(飛走) -- 本命 ○楽園の巫女  博麗 霊夢 職業:博麗神社の巫女さん  Hakurei Reimu   能力:主に空を飛ぶ程度の能力 @東方project系列 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.114.76.199
1F:推 j2612280:good!!但還是不得不宣傳一下我的論壇XD~ 03/03 00:09
2F:→ j2612280:http://307.now.to/ 在國北資科102級那個版裡~XD 03/03 00:10
3F:→ game0416:(飛踢) 早上跟你提的我跟系辦提了...下學期開始 03/03 00:10
4F:→ gcobc12632:大家一起重修 03/03 00:11
5F:→ j2612280:OK!!記得要再提醒我一下><我怕過一個暑假就忘了..感恩~ 03/03 00:12
6F:→ j2612280:啊= =對了..鳳娘的是詳細版 我的是手寫簡易版~ 03/03 00:13
7F:→ pk873:翔風DADA置入性行銷 而且又想要跟鳳狼開戰了 03/03 00:14
8F:→ game0416:到時候應該會記得吧 是說有可能指名幹三年就是了(炸) 03/03 00:14
9F:→ j2612280:pk不要亂引戰~~~三年.....下學期再說吧~ 03/03 00:15
10F:→ game0416:沒有問題,你把架構做出來我去坐領乾薪! 03/03 00:18
11F:→ j2612280:你想太多啦= =+ 03/03 00:19
12F:推 CaptainWill:推! 但二樓又在宣傳非法論壇了 囧 03/03 00:21
13F:噓 gcobc12632:廣告推文 凼 03/03 00:26
14F:→ CaptainWill:支持樓上 03/03 00:27
15F:→ j2612280:靠= =請饒了我... 03/03 00:28
16F:推 ip3311:推 宣傳非法論壇 幹 你來我寢室開過你論壇? 03/03 00:38
17F:推 dosomethnig:樓上...哈哈哈 03/03 00:43
※ 編輯: game0416 來自: 120.127.47.86 (03/09 12:02)







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP