2015-08-13 72 views
-5

由于内联函数将替换实际的代码调用,因此将内联函数调用为const的用法是什么。内联const函数

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

['inline'](https://stackoverflow.com/questions/145838/benefits-of-inline-functions-in-c)和['const'](https://stackoverflow.com/questions/ 751681/const-last-in-ac-method-declaration)是两个正交的概念,它们彼此无关 – CoryKramer

+0

您已将函数指定为独立(不是成员函数)。如果这是你的意图,代码是无效的 - 一个const函数必须是一个成员函数。 – nos

+0

但是,如果你定义了上面提到的函数,那么内部会发生什么? – Swapnil

回答

2

内联函数是一个可以在每个翻译单元中定义的函数,并且必须在调用它的每个翻译单元中分别定义。对于编译器来说,这也是一个完全没有约束力的建议,你认为函数应该是内联的。编译器可以实际内联或不内联你的任何函数,无论它们是否声明为内联。

const意味着该函数是一个方法的对象将不会被函数调用可视地修改。有一些例外情况,如果你足够努力,总是可以修改,但是一般情况下,const对于调用者是一个承诺,你不会这么做。

一起使用它们意味着除了它们各自的含义之外别无其他。它们本质上是无关的。