内联函数嵌套使用规则
来源:互联网 发布:python string empty 编辑:程序博客网 时间:2024/05/14 16:04
在使用内联函数时发现一个问题:内联不能嵌套使用?
代码大致如下:
// 头文件
#ifndef INLINESTUDY_H
#define INLINESTUDY_H
#include <iostream>
#include <iomanip>
using namespacestd;
class A
{
public:
A() {}
inline voidFunA();
};
#endif
//源文件1
#include "InlineStudy.h"
#pragma once
inline voidA::FunA()
{
cout<< "inline A" << endl;
}
// InlineStudy.cpp : 定义控制台应用程序的入口点。
#include <iostream>
#include <iomanip>
#include "InlineStudy.h"
using namespacestd;
class B
{
public:
B(Aa) :m_ca(a) {}
inline voidFunB();
private:
Am_ca;
};
inline voidB::FunB()
{
m_ca.FunA();//调用A的内联方法
cout<< "inline B" << endl;
}
int main()
{
Aa;
Bb(a);
b.FunB();
return0;
}
经过调试修改发现:inline void FunA();的定义和声明在同一源文件中时,编译通过。感觉很奇怪,难道内联函数和模板函数一样声明和定义不能在两个源文件?百度一下后大概明白了原因。内联函数类似于宏函数,会被直接展开,调用时不会有堆栈创建与解退,因此当内联函数发生嵌套调用时,必须保证其声明和定义在同一源文件,调用者和被调者要在一个编译单元里(.obj)。
- 内联函数嵌套使用规则
- C++ inline内联函数使用规则
- 块级元素 内联元素嵌套规则
- 块状元素与内联元素的嵌套规则
- 块级标签和内联标签之间的嵌套规则
- CSS块级标签与内联标签嵌套规则
- 内联函数使用注意事项
- 内联函数的使用
- 内联函数的使用
- 内联函数的使用
- C++ 内联函数使用
- 内联函数inline的使用
- inline 内联函数的使用
- 内联函数:inline的使用
- C++ 内联函数的使用
- c++ 内联函数使用技巧
- 神马时候使用内联函数?
- 使用内联函数代替宏
- java开发疑问集
- VS2008下BOOST编译指南
- 手机APP测试类型与方法
- NEFU2013省赛集训6
- 面试题之:生产者和消费者问题
- 内联函数嵌套使用规则
- 应用程序版本
- 高性能服务器的设计原则
- 移动互联网下一章(转载)
- Linux下的 API Hook
- SVN下载,及eclipseSVN插件下载、安装
- Synchronized Statements作用
- Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)
- javaSE 3.6