C++ const member function

北慕城南 提交于 2020-01-25 10:41:38

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.hDeviceAllocator的成員函數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?

Const member functions in C++

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!