麻烦神人解惑一下!!

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