今天本来在休息,结果小伙伴问了我个问题,把我的三观都颠覆了。get到了新的知识点,这里记录一下。

内类的函数,都默认为是内联函数!!

这居然是真的。然后我就懵了。因为内联函数应该是定义在头文件里比较好,如果定义在cpp文件中,其他的文件就无法找到内联函数进行展开了。

那么问题来了:难道我定义一个类后,所有的类内函数都写在头文件里??平时我们不是这么干的啊?

如果内联函数没有写在头文件里,编译器如何处理呢?

答:当做普通函数处理!忽略其内联的属性!所以,就算是类内的函数,没有定义在头文件里也没有关系,只不过是取消了其内联的属性而已!

如下面的例子,可以正常运行:

头文件:

#ifndef __INLINE_CLASS_H__
#define __INLINE_CLASS_H__ #include<stdio.h> inline void infun(int a, int b); #endif

cpp1 有内联函数定义

#include"inline_class.h"

inline void infun(int a, int b)
{
printf("%d %d\n", a, b);
} void fun2(int x, int y)
{
infun(x+, y-);
}

cpp2引用了内联函数

#include"inline_class.h"

void fun3(int x, int y)
{
infun(x*, y/);
}

cpp3有主函数,引用了内联函数

#include"inline_class.h"
int main()
{
int a = ;
int b = ;
infun(a, b);
return ;
}

最新文章

  1. 介绍对称加密算法,最常用的莫过于DES数据加密算法
  2. sprint演示Scrum 项目7.0
  3. 基础知识《四》---Java多线程学习总结
  4. TVS和一般的稳压二极管有什么区别
  5. 性能测试培训:tomcat性能调优方法
  6. 【转】用PowerDesigner制作数据库升级脚本
  7. CentOS上安装GitBlit服务
  8. Spring Boot 之Hello Word
  9. LNMP的配置与优化
  10. Python学习之旅(二十九)
  11. 一十九条优雅Python编程技巧
  12. grid - gap
  13. jQuery动态创建DOM节点
  14. android windows的一些item属性
  15. Git使用常见问题脚本
  16. [.NET开发] C#连接MySQL的两个简单代码示例
  17. LintCode——尾部的零
  18. dom4j怎么获得指定名称的节点信息
  19. 常用的Redis客户端的并发模型(转)
  20. Web项目的WEB-INF目录使用说明以及重定向与转发

热门文章

  1. DFS(2)——hdu1241Oil Deposits
  2. DFS(4)——hdu1010Tempter of the Bone
  3. poi解析excel出现格式不正确
  4. A - 移动的骑士
  5. C# 利用WMI对象获取物理内存和可用内存大小
  6. Intellij IDEA将工程打包成jar包并执行
  7. jquery/js iframe 元素操作
  8. BZOJ 1101 [POI2007]Zap | 第一道莫比乌斯反(繁)演(衍)
  9. 洛谷P3806 【模板】点分治1 【点分治】
  10. [NOIP2012] 文化之旅 dfs