不能传递一个常数数据类型到非const函数。设置FUNC到上分配所述功能的值类型为const错误后,将理解的设置错误的,因为它不是可变的作为其类型为const的函数内部。
如何传递一个const变量成非const函数通过引用,并允许该功能的内容进行修改?
错误C2662:无效汽车厂::函数set_values(车载&)不能这个指针从常量汽车转换为汽车&
// Tried this
//Car& newCarData = const_cast<Car&>(myCar);
const Car& myCar = volvo->GetBuild();
// Tried this
//Car& newCarData = const_cast<Car&>(myCar);
set_values(&myCar);
void CarFactory::set_values(const Car& myCar){
// do some assigning here for mutable variables declared in the header
}
应该能够把这种没有错误,并通过数据传递给函数set_values()。并且还修改页眉设置非const的变量。
如果你想修改Car
的set_values
对象必须传递一个非const引用。但是,这意味着你的volvo->GetBuild()
必须返回一个非const引用过。
下面的解决方案,不是很大,但适用于这一点。如果你愿意后门指针。
CarFactory* ptr = const_cast<CarFactory*>(this);
最后,我对这个问题没有最少的代码工作版本道歉。试图解释它在哪里,如果你知道consts你也许能左右反弹的一些想法。所提到的意见做了支持此解决方案,多谢你。