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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值