当前位置: 首页 > news >正文

C++:成员函数实现在类定义中与在类定义外的区别

//a.cpp
class A{  
    public:  
    int fun(int x){  
    return (x*x+1000);  
    }  
};  
void tt()  
{  }  

//b.cpp
class A{  
    public:  
    int fun(int x);  
};  
void tt();    
int yy()    
{    
    tt();   
    A a;  
    return a.fun(3);    
}  
将它们分别编译后再链接:

显示链接错误,因为b.cpp(b.o)中找不到A::fun(int)的引用。
将以上的a.cpp改为如下所示:
class
A{ public: int fun(int x); }; int A::fun(int x){ return (x*x+1000); } void tt() { }

再次编译a.cpp,不用再次编译b.cpp,a.o和b.o后链接,显示链接成功。

这样,第一次链接错误的原因就很明显了。

结论: 在类定义中的类成员函数实现有文件内部作用域,而在类定义外部的类实现有的是全局作用域。

 

 

转载于:https://www.cnblogs.com/leijiangtao/p/4489215.html

相关文章:

  • php实现多线程
  • 跨平台开发相关资料
  • linux下安装apache
  • 【瑜伽520】开源虚拟机 VirtualBox 5.0 Beta 3 发布
  • UI设计中有哪些常见问题需要避免?
  • js实现图片自动切换效果。
  • 2019-06-11 Java学习日记之Bootstrap
  • hdu 1561 树形dp+分组背包
  • 我使出这“三板斧”(分段锁、哈希锁、弱引用锁)灭霸跑了......
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • zimbra 证书过期--zimbra使用
  • 编程之美 象棋将帅问题
  • 你会写单元测试吗
  • 一道题浅谈【作业调度】与【进程调度】
  • imagick-3.1.0RC2 安装错误
  • Android 控件背景颜色处理
  • exif信息对照
  • js中的正则表达式入门
  • Objective-C 中关联引用的概念
  • python_bomb----数据类型总结
  • Redis在Web项目中的应用与实践
  • spark本地环境的搭建到运行第一个spark程序
  • SpiderData 2019年2月13日 DApp数据排行榜
  • Sublime Text 2/3 绑定Eclipse快捷键
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 好的网址,关于.net 4.0 ,vs 2010
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 算法系列——算法入门之递归分而治之思想的实现
  • 优秀架构师必须掌握的架构思维
  • 在Mac OS X上安装 Ruby运行环境
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • ​比特币大跌的 2 个原因
  • (1)常见O(n^2)排序算法解析
  • (10)STL算法之搜索(二) 二分查找
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (3)(3.5) 遥测无线电区域条例
  • (rabbitmq的高级特性)消息可靠性
  • (二)windows配置JDK环境
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (论文阅读40-45)图像描述1
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)Linux下编译安装log4cxx
  • (转)树状数组
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Remoting学习笔记(三)信道
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .NET开源项目介绍及资源推荐:数据持久层
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • @ModelAttribute 注解