面试归来--const问题
面试的GG问偶:
Class A_class
{
void f() const
{
}
}
1.const的作用?
偶答:防止该成员函数修改类成员变量!
接着的问题是:这种情况如果要修改修改类的成员变量应该怎么办?
--晕,那要const干什么啊?--其实偶不懂怎么回答。。。
只能答道:调用别的函数或指针吧。。。
请教各位应该怎么回答?
[解决办法]
将你想在const成员函数中修改的成员变量声名为mutable
[解决办法]
我不知道
[解决办法]
对,用mutable修饰变量,通常情况下用函数和指针是不行的。
[解决办法]
当然用指针也可以实现,强制转换一下即可。
class A_class
{
public:
int x;
A_class()
{
x=0;
}
void f() const
{
int *p =(int *)&x;
(*p)++;
}
};
x的值就可以被修改。
[解决办法]
mark 学习!
[解决办法]
呵呵,面试
学习了
[解决办法]
不懂啊
学习中。。。
[解决办法]
void f() const
{
}
什么意思???
[解决办法]
学习。
[解决办法]
mutable声明的成员变量,即使在const成员函数里也可以被修改