c++为什么要实现(.cpp)和声明(.h)分开?
为什么要有透明性?如果别人不关心实现,他可以折叠代码(现在的IDE几乎都支持),只看函数原型和注释。不考虑需要替换【实现方法】的情况。不考虑继承、多态、虚函数等。加上#p...
为什么要有透明性?如果别人不关心实现,他可以折叠代码(现在的IDE几乎都支持),只看函数原型和注释。
不考虑需要替换【实现方法】的情况。
不考虑继承、多态、虚函数等。
加上#pragma once,不考虑重定义。 展开
不考虑需要替换【实现方法】的情况。
不考虑继承、多态、虚函数等。
加上#pragma once,不考虑重定义。 展开
展开全部
楼上说的不对啊,分开定义根本目的并不是说重定义。就算你把函数定义在一个文件里面,照样可以的,不然前向声明还能存在吗?分开定义首先是为了简洁,谁会觉得把函数声明和定义都放在一个文件里面好?第二,在程序设计中,编写人员可能只提供一个.lib文件和头文件或DLL文件,使用者便可以应用到自己的程序中,也是方便了隐藏代码。不全面,请谅解。
追问
提供.lib&.dll也是为了隐藏代码对吗?这个(即实现了透明性)有什么好处?
追答
也不全是为这个啊。Lib文件和Dll文件是经过编译的,所以使用者使用的时候编译速度较纯写代码快很多。而且Dll函数也有导出函数和非导出函数。使用者只能使用导出函数。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不分开会出现重定义错误,你可以自己试试,h文件写个函数,
两个cpp文件都括入,编译就报错了
两个cpp文件都括入,编译就报错了
追问
假设我加上#pragma once,不会重定义,还有别的原因吗?
追答
你真试过吗,编译可以,链接也能通过?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询