Re: [問題] 如何讓vector<A> Get()得到的資料不可修改

看板C_and_CPP作者 (d.p.II)時間14年前 (2009/12/15 23:07), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《HeyScng ( )》之銘言: : 3. 如果傳回值是double**,如何使傳回的referene為const, : 我寫const double** GetInfo, compiler不讓我過耶 double ** 是決不可轉成 const double ** 的,理由如下 double *pd; const double **ppcd = &pd; //if we can convert double ** to const double ** const double cd = 1.0; const double * pcd = &cd; //then we can assign a const double * to double * // by dereference the const double ** *ppcd = pcd; //note: *ppcd is const double*, // which actually a reference to a double* (pd). //now pd points to a const double. *pd = 2.0; //oops. ====================================== 所以你需要多加個const,返回 const double * const * 即可。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.237.155.79

12/15 23:51, , 1F
不好意思 這些部分我可能還要在吸收一下
12/15 23:51, 1F

12/15 23:51, , 2F
不過以return static_cast<const double**>(m_Data)
12/15 23:51, 2F

12/15 23:52, , 3F
的方式似乎可以
12/15 23:52, 3F

12/15 23:58, , 4F
但還是先謝謝了!
12/15 23:58, 4F

12/16 00:35, , 5F
是的,這個很tricky.明確知道自己在做什麼,cast也是可以接受
12/16 00:35, 5F
文章代碼(AID): #1B9wOMTG (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1B9wOMTG (C_and_CPP)