加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 教程 > 正文

C++中内联函数inline的另一影响

发布时间:2021-11-23 15:03:03 所属栏目:教程 来源:互联网
导读:内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。 今天在coding时遇到多次定义一个函数而使ld返回错误的情况。大致过程如下: 首先,在一个头文件中定义了一个类及其实现: test.h: #ifndef TEST_H #define TEST_H class A{ pub

 内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。
 
    今天在coding时遇到多次定义一个函数而使ld返回错误的情况。大致过程如下:
 
    首先,在一个头文件中定义了一个类及其实现:
 
    test.h:
 
#ifndef TEST_H   
#define TEST_H   
class A{  
    public:  
    void fun();  
};  
void A::fun(){  
}  
#endif  
   然后分别有两个文件:
 
a.cpp:
 
#include"test.h"   
void tt()  
{  
}  
b.cpp:
 
#include<iostream>   
#include"test.h"   
using namespace std;  
void tt();  
int main()  
{  
    A a;  
    tt();  
    return 0;  
}  
   而后,将a和b分别编译之后就会出错:
 
 
 
    想了想,是由于分开后在a.o和b.o中都分别定义了A的fun()函数,因此会发生冲突。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读