2013-09-26 1 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() { ... }; 
}; 
Смежные вопросы