[問題] 關於Pimpl和const的問題
最近在寫程式的時候遇到個小問題
#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函式這樣
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 121.254.69.174
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1424809447.A.FBD.html
→
02/25 04:29, , 1F
02/25 04:29, 1F
推
02/25 07:30, , 2F
02/25 07:30, 2F
→
02/25 07:31, , 3F
02/25 07:31, 3F
推
02/25 08:18, , 4F
02/25 08:18, 4F
推
02/25 11:28, , 5F
02/25 11:28, 5F
推
02/25 12:06, , 6F
02/25 12:06, 6F
→
02/25 12:07, , 7F
02/25 12:07, 7F
推
02/25 13:50, , 8F
02/25 13:50, 8F
→
02/25 13:51, , 9F
02/25 13:51, 9F
→
02/25 13:53, , 10F
02/25 13:53, 10F
→
02/25 20:09, , 11F
02/25 20:09, 11F
→
02/25 20:27, , 12F
02/25 20:27, 12F
→
02/25 20:54, , 13F
02/25 20:54, 13F
→
02/25 23:51, , 14F
02/25 23:51, 14F
→
02/25 23:52, , 15F
02/25 23:52, 15F
→
02/25 23:52, , 16F
02/25 23:52, 16F
推
02/26 08:17, , 17F
02/26 08:17, 17F
→
02/26 08:18, , 18F
02/26 08:18, 18F
→
02/26 08:19, , 19F
02/26 08:19, 19F
→
02/26 08:20, , 20F
02/26 08:20, 20F
→
02/26 08:21, , 21F
02/26 08:21, 21F
→
02/26 08:21, , 22F
02/26 08:21, 22F
→
02/26 08:21, , 23F
02/26 08:21, 23F
推
02/26 10:45, , 24F
02/26 10:45, 24F
→
02/26 16:57, , 25F
02/26 16:57, 25F
→
02/26 16:58, , 26F
02/26 16:58, 26F
→
02/28 05:24, , 27F
02/28 05:24, 27F
→
02/28 05:26, , 28F
02/28 05:26, 28F
→
02/28 14:48, , 29F
02/28 14:48, 29F