C++ では、クラスの静的メンバー関数をそのクラスの静的メンバー変数const
に関してどのように宣言しますか?
次の簡単な例を考えてみましょう。
myclass.h:
class myclass
{
myclass()
{
myint = 0;
}
~myclass() { }
int myint;
static int my_static_int;
void foo(const int yourint) const;
static void bar(const int newint );
};
myclass.cpp:
myclass::my_static_int = 0;
void myclass::foo(const int yourint) const
{
if (yourint <= myint + my_static_int)
std::cerr << "yourint <= myint + my_static_int";
else
std::cerr << "yourint > myint + my_static_int";
bar( yourint );
}
void myclass:bar(const int newint)
{
my_static_int = newint;
}
main.cpp
...
myclass A;
A.foo(4);
A.foo(4);
..
出力は次のようになります。
yourint > myint + my_static_int
yourint <= myint + my_static_int
明らかに、メンバー関数内bar
で使用して、クラスの静的メンバー変数を変更し、 constメンバー関数の結果を変更できます。const
foo
bar
に関して const であると宣言できますmy_static_int
か?