有关类的问题!

hhcjb 2003-12-12 07:34:34
在C++中,在类中定义函数,与类外定义函数有什么区别!兄弟们能详解一下吧!!
例如:
// 类中定义
class name
{
int x;
public:
copy()
{}
};

//类外定义
class name
{
int x;
public:
copy();
};
name::copy()
{
}
...全文
61 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeckyz 2003-12-13
  • 打赏
  • 举报
回复
我补充一个很重要的区别.对于内联/非内联楼上解释清楚了,但还有一个很重要的却没提到.假如你在开发一个大项目(编译整个项目要3小时以上),这样做是很不利的,在开发调试的过程中改变某个成员函数的实现可能频率很高(相对来说,增删接口会少些),每当你一改变了这样设计的类,那么包含了这个类的所有文件都要重新编译,这样在调试的时候是相当烦的.如果无论如何你把成员的实现放到一个单独的文件中,那么你改动了成员的实现就不至于包含了该类声明的所有文件都要重新编译,省下不少时间哪!体会到了吗?

如果你觉得某个成员确实有内联的必要,分开来实现也可以建议让编译对该函数实施内联的,只要在函数定义前加上 "inline" 关键字也是同样效果的.

lijun2044 2003-12-13
  • 打赏
  • 举报
回复
在类里面定义的函数向编译程序申请为内联函数。
而类外则不是
hnbbang 2003-12-13
  • 打赏
  • 举报
回复
我也这么认为.
newegg2002 2003-12-13
  • 打赏
  • 举报
回复
我想,对于那些函数体长一点函数,就不要内联吧,不但牺牲运行时间,还不易于代码维护;简单一点的嘛,倒是可以考虑的,
LinuxPanther 2003-12-13
  • 打赏
  • 举报
回复
也是内联与否的答案了。
不过,也可以在类外内联了
用inline 修饰了额。
yoyo82 2003-12-13
  • 打赏
  • 举报
回复
是隐式和显式的区别
byyyyy 2003-12-12
  • 打赏
  • 举报
回复
写在类里面的成员函数,如果没有特别注明则编译器会认为是内联函数,如果函数本身比较长那么比较聪明的编译器不会认为其为内联
cpsoft 2003-12-12
  • 打赏
  • 举报
回复
请问构造函数和析构函数也会内联吗?
langzi8818 2003-12-12
  • 打赏
  • 举报
回复
1楼说的对吧!差不多都是这么理解的
sms88 2003-12-12
  • 打赏
  • 举报
回复
在类外定义还有一个好处就是在保证成员函数定义正确的前提下,能更好的理解类的接口等的作用。
因为你的代码总要回过头来维护,这样就更直观些,简捷些
chenmujian81 2003-12-12
  • 打赏
  • 举报
回复
在类里面定义的函数都是内联函数。
而类外则不是
glacierrr 2003-12-12
  • 打赏
  • 举报
回复
楼上讲得不错,好像就是内联不内联的关系。不过内联只是一个声情,不一定会真的内联,由编译器来判断是否值得内联。
sisijin 2003-12-12
  • 打赏
  • 举报
回复
copy函数没有写返回类型……

我的理解是:
写在类里面的成员函数,如果没有特别注明则编译器会认为是内联函数,如果函数本身比较长那么比较聪明的编译器不会认为其为内联

写在类外面的成员函数,如果没有特别注明则认为不是内联
zswin建站系统!zswin社交博客系统1.6.4 社交博客系统!不仅仅是个博客,可以用它来搭建各系统! 完善的后台就是原zswin后台管理框架,功能完备,适应做各系统后台,可扩展! 简洁的前台,利用标签和插件可以很轻松的更改模板和功能,减轻你的建站难度! 采用的是thinkphp3.2.2和bootstrap3.3.0 响应式模板,电脑手机均可正常访问! 轻轻松松搭建自己的网站! 本系统完全免费,有问题还可以在官网和讨论群交流! 反馈bug及安装请登录官网zswin.cn或者加群228550381 1.6.4版本在团队夜以继日的忙碌中终于与大家见面了! 这个版本将是zswin2.0的基础版,也是目前功能比较完善的版本! 基础功能: 1、基础博客功能 2、个人中心,根据个人需要可进行二次开发,扩展其他项目,如积分等 3、后台框架强大 4、插件机制配合标签机制,快速建立自己的网站模板风格(见标签介绍),后期也可更好的实现其他扩展。 较之前版本,1.6.4的功能主要有: 1、增加了apache下的伪静态规则文件,其他环境下请看thinkphp3.2以上版本手册,只需要隐藏系统的index.php或者index.php?s=/这些即可! 2、增加了路由规则,除普通模式外,我们可以享受更短的网址链接,同时也将对搜索引擎更加友好和可读!同时,我们修改了thinkphp官方的page.class.php的分页,让它更好的支持路由规则!官方的原始分页无法支持路由规则! 3、增加了模板主题的自动替换功能,例如,默认的主题是default(目前官网显示的这个主题),如果你新建的主题为wind,此时用户访问ucenter/userart这个模块,恰巧你的主题里没有这个模板文件,系统将自动调用default下的相关模板!关于模板的话题,我们在后面将会出模板制作教程! 4、增加了用户之间的私信功能 5、增加了消息功能,评论你的文章或者是有人@你的时候,都会受到系统消息! 6、异步执行发送邮件! 7、后台设置风格主题和URL模式,网页后缀名和间隔符号,增加了自动判断URL链接机制,后台更改模式后,前台自动替换各个链接! 8、增加了success、error和404页面 修复: 1、解决了uploadify上传插件与chrome浏览器缓存机制冲突的问题 2、解决了不同的URL模式图片上传路径问题 3、修复用户信息更新不及时的问题

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧