最近在写程式的时候遇到个小问题
#include<stdlib.h>
#include<stdio.h>
class MyClass
{
public:
MyClass()
{
mImpl=new Impl();
}
void SetNum(int num) const
{
mImpl->num=num;
}
private:
class Impl
{
public:
int num;
};
Impl *mImpl;
};
int main(int argc, char *argv[])
{
MyClass* mc=new MyClass();
mc->SetNum(100);
}
在member function中加入const不是应该就是为了表示这个函式不会更改值吗?
可是以这样的写法来说却是通过的,虽然我们的确是没有更改mImpl的值。
但是这样会不会有点不合逻辑,如果.cpp和.h分开写
使用者只看的到void SetNum(int num) const会不会充满满满的疑惑?
既然要设定num的值又设定为const函式这样