【发布时间】:2025-12-30 17:35:15
【问题描述】:
我正在尝试使用其构造函数初始化我的类 ShadeRec 的实例:
ShadeRec(World& world);
所以我传递给它:
ShadeRec sr(*this);
其中“this”是 World 类的一个实例。
我收到以下错误:
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&)
假设问题只是 World 实例具有属性 const,我该如何摆脱此错误消息?
【问题讨论】:
-
构造函数是否需要非常量引用?如果没有,为什么不让它采用 const 引用?
-
与*.com/questions/2912445/how-to-discard-const-in-c/… 高度相似。另请查看 @*.com/questions/5598703/c-const-usage-explanation 以获取有关 const 工作原理的指针。
标签: c++ pointers reference constructor argument-passing