Ale*_*lex 5 c++ const volatile
很多人都说"易变成员函数完全类似于const的工作方式."
它们在指针被标记为const/volatile的意义上非常相似,它只能访问标记为const/volatile的成员函数.
但实际上将成员函数定义为const会产生额外的影响,这会使函数成为只读函数.对函数内部对象的任何修改都将导致编译器错误.在volatile成员函数中是否有这样的类比?
那么,易失性成员函数将使对象成员变得易失性,也就是说,this就像已定义一样volatile T * const this。因此,对成员变量的任何引用也是易失性的。
请记住,易失性读/写是编译器无法删除/重新排序的操作。它们通常用于实现内存映射硬件设备或类似的东西。
坦率地说,我从来没有使用过这个功能,除了使用一些聪明的技巧来过滤对函数的访问之外,而不是利用对象的易失性。如果您的代码级别较低,足以满足需要,volatile您可能会希望将 volatile 放入您需要的变量中。