我试图用它的构造函数初始化我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