最も基本的なレベルで、次のようなオブジェクトがあります。
#include <X11/Xlib.h>
class x_link {
public:
x_link()
{
display_ = XOpenDisplay(NULL);
}
~x_link()
{
XCloseDisplay(display_);
}
Display* display_ptr() const
{
return display_;
}
private:
Display* display_;
};
このような場合、 「const」はどのようx_link::display_ptr()
にすべきか疑問に思っていました。
この古い質問、論理状態に影響するがビット単位の状態に影響しない場合、メンバー関数は「const」にする必要がありますか? 、私のメソッドは(それ自体)オブジェクトの論理状態またはビットごとの状態に影響を与えないため、const
進むべき道であるという印象を与えます。
しかし同時に、 を提供すると、Display*
ユーザーは (たとえば、XCloseDisplay()
自分自身を呼び出すことによって) オブジェクトを壊すことができます。
何かご意見は?