我試圖用它的構造函數初始化我ShadeRec
類的實例的引用:使用*這個初始化
ShadeRec(World& world);
所以我給它:
ShadeRec sr(*this);
其中「這個」是世界類的一個實例。
我得到以下錯誤:
World.cpp: In member function ‘ShadeRec World::hitObjects(const Ray&) const’:
World.cpp:52: error: no matching function for call to ‘ShadeRec::ShadeRec(const World&)’
ShadeRec.h:17: note: candidates are: ShadeRec::ShadeRec(const ShadeRec&)
ShadeRec.h:15: note: ShadeRec::ShadeRec(World&)
假設的問題就是,世界實例具有屬性const
,我怎麼能擺脫此錯誤消息的?
是否構造需要一個非const引用?如果沒有,爲什麼不讓它參考一個const參數? – us2012 2013-03-25 20:30:39
與http://stackoverflow.com/questions/2912445/how-to-discard-const-in-c/2912726#2912726非常相似。另請參閱@ http://stackoverflow.com/questions/5598703/c-const-usage-explanation關於const如何工作的指針。 – user2184879 2013-03-25 20:57:18