講義第三章的3-35虛擬碼部分
有一行(line 24)是: step.dir = d+1;
但在Visual Studio C++中直接寫enum運算是會有error的
解決方法是作完運算之後轉型態
step.dir = d+1; ==> step.dir = (directions)(d+1);
又:
d++ ==> d = (directions) d+1;
有關 enum data type 及其變數語法的測試:
------------ 詳見註解 // 內的說明 ,測試結果如下 ---------------
enum directions {N, E, S, W};
directions d = N;
int i ;
listBox1->Items->Add("d = "+Convert::ToString(d)); // 變數 d 印出前先轉為 String
// for (d = N; d <= W; d++) ==> d 已非一般 int ,不得如此用,語法會有錯
for (i = d; i <= W; i++) // d 可做為 = 右邊的值
listBox1->Items->Add("__ i = "+i); // 變數 i 不必轉為 String (VS 代做了)
listBox1->Items->Add("d = "+Convert::ToString(d));
d = directions (d+5); // d 可做 +5 的計算,但結果設給 d 時要轉型
listBox1->Items->Add("d+5 = "+Convert::ToString(d));
i = d+5; // d 可做為 = 右邊的值,+5 後設給 i (不必轉型)
listBox1->Items->Add("i ((d+5)+5) = "+Convert::ToString(i));