C++ const member function
const member function
在函數定義後面加上const
就成了const member function,它的作用是確保在函數裡面不會有成員變數被意外地修改。在const member function內,如果嘗試去修改任一成員變數,都會造成編譯錯誤。
另外注意:一個const object只能調用const member function;
一般的物件則可以調用一般的成員函數或是const member function。
在TensorRT/samples/common/buffers.h
中DeviceAllocator
的成員函數operator()
被定義為const member function:
class DeviceAllocator
{
public:
//注意其參數是指標的指標void**
bool operator()(void** ptr, size_t size) const
{
return cudaMalloc(ptr, size) == cudaSuccess;
}
};
(但是DeviceAllocator
這個類別並沒有成員變數,因此沒有擔心成員變數被修改的問題,那麼此處將operator()
定義為const member function的用意何在?)
參考連結
Meaning of ‘const’ last in a function declaration of a class?
来源:CSDN
作者:keineahnung2345
链接:https://blog.csdn.net/keineahnung2345/article/details/104082539