C++自己写的dll库导出类,为什么要把声明和实现分开?不分开,调用就报错,为什么? 5
1个回答
展开全部
不分开的话,你事实上已经声明了:你所实现的函数也被放置到头文件中。
因为:一般来说,实现和声明是分开的,而声明一般是放到如下的环境中,以避免重复包含。
#ifndef XXX_MACRO
#define XXX_MACRO
/*
* <此处放置你的声明>
* <你把实现也放到了这里>
*/
#endif
当你把实现也放到这里时,声明和实现都在一个地方,导致的结果是:直接或间接引用该文件的模块的其他模块中,也可能声明了同样的全局变量或全局函数,由此可能产生冲突。
这样的确不是一个良好的编程风格。一般都是在声明的地方定义宏、原型、声明、内联函数,而把实现放到其他地方去。
因为:一般来说,实现和声明是分开的,而声明一般是放到如下的环境中,以避免重复包含。
#ifndef XXX_MACRO
#define XXX_MACRO
/*
* <此处放置你的声明>
* <你把实现也放到了这里>
*/
#endif
当你把实现也放到这里时,声明和实现都在一个地方,导致的结果是:直接或间接引用该文件的模块的其他模块中,也可能声明了同样的全局变量或全局函数,由此可能产生冲突。
这样的确不是一个良好的编程风格。一般都是在声明的地方定义宏、原型、声明、内联函数,而把实现放到其他地方去。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |