2013-09-26 29 views
0

例如源文件中定义的方法是否可以内联?

// a.h 
strcut A 
{ 
    void simpleMethod(); 
    void anotherMethod() {...; simpleMethod(); ...;} 
}; 

// a.cpp 
#include "a.h" 
void A::simpleMethod() { one_line_simple_implementation; } 

我的问题是:simpleMethod()anotherMethod()由现代编译器的优化内联?

回答

1

在这种情况下,是的。如果a.cpp包括a.h(我想是的)。只要编译器可以看到完整的定义。没事。但是你需要这样说。

inline  void A::simpleMethod() { one_line_simple_implementation; } 
0

可以使用inline void A::simpleMethod() { ... }或者,如果你不使用inline关键字,您可能会收到多个定义错误。 或者你可以做

class A 
{ 
    void foo() { ... }; 
}; 
相关问题