在 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 );
};
我的类.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;
}
主文件
...
myclass A;
A.foo(4);
A.foo(4);
..
输出将是:
yourint > myint + my_static_int
yourint <= myint + my_static_int
显然,bar
可以在const
成员函数中使用来改变类的静态成员变量,从而改变const成员函数的结果foo
。
你可以声明bar
为 constmy_static_int
吗?