我试图常量性添加到C++中的变量,通过VC拒绝与Error C2664 : cannot convert MyClass * to const MyClass &
编译。我已经竭尽所能,做搜索,阅读类似的问题(1,2),我仍然解决不了。无法转换MyClass的*为const MyClass的
我的函数定义为:
void ClassFoo::FuncFoo(MyClass* instance){
Merge(instance); // <--- Error C2664 -- cannot convert MyClass* to const MyClass &
Merge(&instance); // <--- Error C2664 -- cannot convert MyClass** to const MyClass &
Merge(*instance); // <--- This compiles fine, but doesn't work properly at runtime
Merge(const_cast<const GFxTextFormat&>(instance)); // <--- Error C2440
}
MyClass Merge (const MyClass &instance){
}
我应该怎么做才能正常添加常量性的变量instance
,这样我可以正确地调用Merge
呢?
,编译精细的一个是正确的。运行时出现了什么问题? – 2013-03-23 19:10:19
阅读关于const_cast <> http://www.cplusplus.com/doc/tutorial/typecasting/ – OldProgrammer 2013-03-23 19:11:36