Chinaunix首页 | 论坛 | 博客
  • 博客访问: 746022
  • 博文数量: 128
  • 博客积分: 7079
  • 博客等级: 少将
  • 技术积分: 1326
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-16 08:53
文章分类

全部博文(128)

文章存档

2011年(3)

2010年(12)

2009年(9)

2008年(23)

2007年(61)

2006年(20)

我的朋友

分类: C/C++

2008-01-09 13:27:28

今天写了个DLL,在DLL里定义了个结构体,但在调用此DLL时,提示“error LNK2001: unresolved external symbol "public:”也就是先关的函数没有实现体的问题,因为我是这么定义的:
dll.h

struct  BRWAgent
{
 int UseAnget ; 
 //HTTP
 char HttpIP[15] ;
 int  HttpPort ;
 BOOL bHttpIsUse ;

 BRWAgent();
 ~BRWAgent() ;
 BRWAgent & operator=( BRWAgent & agent ) ;
};
在.cpp中定义的函数实现。
 
后来发到论坛问网友,论坛的兄弟给我指出了一下问题:
1.函数实现要放到结构体名字域内定义
2.结构体不支持自定义构造函数。
3.让我看看类和结构体的区别。
 
唉,当时那个羞愧啊!!于是到网上找了一下,重新理解了下,结构体和类的区别,总结如下:
 
结构体和类区别:
  结构体和类有很多地方很相似,是类的一种轻量级的替代品。因此弄清楚他们的区别和相同点,能比较好的把握他们的使用。
比较:
比较内容
结构
构造函数
支持(不能自定义,默认提供,作用是将所有的数据成员置零)
支持(能自定义)
析构函数
不支持
支持
变量初始化
不支持(private int num = 50 是错误的)
支持
继承
不支持(sealed类型)
支持
接口
可以实现多个接口
可以实现多个接口
特性
支持
支持
属性
支持
支持
方法
支持
支持
类型
值类型
引用类型
Summary:
1:结构体隐式地从Obeject派生出来
2:从类型的区别可以看出:
   结构体数组效率比类数组效率高(不需要装箱合拆箱)。结构体集合(如Hashtable)效率比类集合效率低。集合的元素是引用类型,所以结构体必须进行装箱和拆箱处理。所以类在大的集合中更有效率。
阅读(916) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~