【C++】类内函数与内联函数
2024-08-28 15:47:36
今天本来在休息,结果小伙伴问了我个问题,把我的三观都颠覆了。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 ;
}
最新文章
- 介绍对称加密算法,最常用的莫过于DES数据加密算法
- sprint演示Scrum 项目7.0
- 基础知识《四》---Java多线程学习总结
- TVS和一般的稳压二极管有什么区别
- 性能测试培训:tomcat性能调优方法
- 【转】用PowerDesigner制作数据库升级脚本
- CentOS上安装GitBlit服务
- Spring Boot 之Hello Word
- LNMP的配置与优化
- Python学习之旅(二十九)
- 一十九条优雅Python编程技巧
- grid - gap
- jQuery动态创建DOM节点
- android windows的一些item属性
- Git使用常见问题脚本
- [.NET开发] C#连接MySQL的两个简单代码示例
- LintCode——尾部的零
- dom4j怎么获得指定名称的节点信息
- 常用的Redis客户端的并发模型(转)
- Web项目的WEB-INF目录使用说明以及重定向与转发
热门文章
- DFS(2)——hdu1241Oil Deposits
- DFS(4)——hdu1010Tempter of the Bone
- poi解析excel出现格式不正确
- A - 移动的骑士
- C# 利用WMI对象获取物理内存和可用内存大小
- Intellij IDEA将工程打包成jar包并执行
- jquery/js iframe 元素操作
- BZOJ 1101 [POI2007]Zap | 第一道莫比乌斯反(繁)演(衍)
- 洛谷P3806 【模板】点分治1 【点分治】
- [NOIP2012] 文化之旅 dfs