C++自己写的dll库导出类,为什么要把声明和实现分开?不分开,调用就报错,为什么? 5

 我来答
paulou163
2014-09-01 · 超过31用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:50.4万
展开全部
不分开的话,你事实上已经声明了:你所实现的函数也被放置到头文件中。
因为:一般来说,实现和声明是分开的,而声明一般是放到如下的环境中,以避免重复包含。

#ifndef XXX_MACRO
#define XXX_MACRO
/*
* <此处放置你的声明>
* <你把实现也放到了这里>
*/
#endif

当你把实现也放到这里时,声明和实现都在一个地方,导致的结果是:直接或间接引用该文件的模块的其他模块中,也可能声明了同样的全局变量或全局函数,由此可能产生冲突。

这样的确不是一个良好的编程风格。一般都是在声明的地方定义宏、原型、声明、内联函数,而把实现放到其他地方去。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式