麻煩神人解惑一下!!

Home Home
引用 | 編輯 翁賜維
2010-05-26 20:32
樓主
推文 x0
上面是程式碼 !

想請問一下類別裡的  enum={LIM=20};

1.
這裡宣告enum 為啥不用給他名稱啊??
還有,這樣宣告LIM = 20 有什麼優點或是缺點啊??
是因為在類別裡才用到enum嗎 ??
這跟在main裡宣告const  LIM = 20   是否是一樣的道理啊??

2.
如果用strcpy()函式跟用strncpy()函式有什麼不同??
那一種比較好??

麻煩解惑一下嚕^^ 謝謝!!


#include<iostream>
#include<cstring>
using namespace std;

class Tabtenn
{
private:
enum{LIM=20};
char firstname;
char lastname;
bool hasTable;
..

訪客只能看到部份內容,免費 加入會員



獻花 x0
引用 | 編輯 n9205t84
2010-12-18 19:05
1樓
  
您好以下資料提供您參考
1.用enum定義出來的東西被當成一個新的型態,就像用struct定義一樣
所以理所當然編譯器不知道要怎麼做運算
如果你有運算需求,要自己提供operator的定義
enum的意義本來就是列舉、識別,通常沒有做運算的必要
如果你需要做運算請用const

2.而至於strncpy跟strcpy則是
strncpy需要傳入三個參數第三個參數就是size如果超過這個大小後就不會複製但缺點就是他不會幫忙補上'\0'結數字元
所以複製完通常要自行加上'\0'
而strcpy則沒那麼嚴謹直接傳目的跟來源就做複製動作所以可能來源資料大於目的的容量出現錯誤或當機的狀況!!

以上是根據手邊知料大致消化後的認知如有部隊的地方還請提點指教!! ^^

獻花 x0
引用 | 編輯 csr
2010-12-21 13:30
2樓
  
看完n9205t84大大解說
了解一時平常的疑惑
謝謝

獻花 x0