2015-08-13 2 views
-5

Как встроенная функция заменит фактический вызов из кода, какова функция вызова встроенной функции как const.Inline const function

Inline void adddata() const {...} 
+0

['inline'] (https://stackoverflow.com/questions/145838/benefits-of-inline-functions-in-c) и [' const'] (https://stackoverflow.com/questions/ 751681/mean-of-const-last-in-ac-method-declaration) являются двумя ортогональными понятиями, они не имеют ничего общего друг с другом. – CoryKramer

+0

Вы указали функцию как свободно стоящую (не являющуюся функцией-членом). Если это было вашим намерением, код недействителен - функция const должна быть функцией-членом. – nos

+0

Но если вы определяете функцию как упоминание выше того, что происходит внутри? – Swapnil

ответ

2

Встроенная функция - это функция, которая может быть определена в каждой единицы перевода и должна быть определена отдельно в каждом модуле перевода, где она вызывается. Это также совершенно необязательное предложение компилятору о том, что вы считаете, что функция должна быть встроенной. Компилятор имеет право фактически встроить или не встраивать какие-либо из ваших функций, независимо от того, объявлены они или нет.

const означает, что объект, который является методом, имеет тенденцию не изменяться видимым вызовом функции. Есть исключения из этого, всегда можно изменить, если вы достаточно стараетесь, но в целом const является обещанием вызывающему, которого вы не сделаете.

Использование их вместе не означает ничего дополнительного для их индивидуальных значений. Они по существу не связаны.

Смежные вопросы