inline -- 1




问题在C++ programming language一书的第九章中描述了C++的单一定义规则,ODR,根据这一规则,“一个inline函数必须在需要用他的每个编译单位里通过完全一样的定义来定义”并且举了例子:file1.c:inline int f(int i) { return i; } file2.c:inline int f(int i) {return i+1;} 书中说这个例子是非法的,因为在两个编译单位中的定义不完全相同那么,下面是我写的一个代码,也是我的问题:我的程序分为main.cc、func.cc和function.h三个文件,main.cc和func.cc中定义了两个如上面反例所写的同名inline函数,他们的函数体并不相同,function.h中是这个inline函数的声明:/* * file: main.cc * author: 龙泉居士 * date: 2012-10-17 04:37 */ #include <iostream> #include "function.h" using namespace std; int main () { f(3); return 0; } inline void f (int a) { cout <<
#读书笔记    #技术帖    #c++    #cpp   



京ICP备15018585号