编程语言
首页 > 编程语言> > C++ const member function

C++ const member function

作者:互联网

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++

keineahnung2345 发布了97 篇原创文章 · 获赞 9 · 访问量 5万+ 私信 关注

标签:function,const,member,成員,operator,變數
来源: https://blog.csdn.net/keineahnung2345/article/details/104082539