0

例如

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

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

我的问题是:可以通过现代编译器优化simpleMethod()内联吗?anotherMethod()

4

2 回答 2

1

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

inline     void A::simpleMethod() { one_line_simple_implementation; }
于 2013-09-26T01:41:54.793 回答
0

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

class A
{
    void foo() { ... };
};
于 2013-09-26T01:47:12.497 回答