0
我正在使用Visual Studio 2012(标准C++,无/ clr支持)在C++中编写模拟项目,我面临以下问题。通过引用传递后的字符串更改
theClassObject->Method("12345")
其中在类的方法的定义是:: 在代码某处我通过引用传递字符串
TheClass::Method(const std::string& STR) {..}
,当我调试它具有在检查STR的值前面还有四个字节,例如“〜#.a12345”,字符串的长度增加了这四个字节。 在其他地方的代码与其他类似的方法,这不会发生。
我错过了该项目的一些编译器选项,或者我错过了其他原因?
我不确定我是否提供了所需的所有信息,但如果需要,我可以提供。
在此先感谢!
这不应该发生。从你发布的内容来看,几乎不可能猜测哪里出了问题。你能把你的问题减少到一个仍然可以编译的子集吗? – nvoigt
您正在将它作为const引用发送,因此您不能更改函数Method()内部的字符串,它正在其他地方更改。你能发表一个样本工作代码吗?(SSCCE) – vathsa
这很奇怪......你正在改变一个const引用!发布'TheClass :: Method(const std :: string&STR)'的实现。它可能是一个显示错误值的调试配置。 –