【发布时间】:2013-03-24 03:45:40
【问题描述】:
我正在尝试为 C++ 中的变量添加常量,但 VC 拒绝使用 Error C2664 : cannot convert MyClass * to const MyClass & 进行编译。我已经尝试了所有方法,完成了搜索,阅读了类似的问题(1,2),但我仍然无法解决。
我的函数定义为:
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?
【问题讨论】:
-
编译好的那个是正确的。运行时有什么问题?
-
了解 const_cast cplusplus.com/doc/tutorial/typecasting
标签: c++ visual-c++ syntax constants