在我的程序的一部分,我有代码:
if(cameraName == L"AVT Prosilica GT2750") {
mCamera = new camera_avtcam_ex_t();
} else if(cameraName == L"QImaging Retiga 2000R\\4000R") {
mCamera = new camera_qcam_ex_t();
}
当我设置我的程序以便 cameraName 默认为 L"AVT Prosilica GT2750" (我的调试器将显示这是它的值)时,它进入 if 语句并运行mCamera = new camera_avtcam_ex_t();
,但是当我进入下一个执行行时我的调试器直接跳到该行mCamera = new camera_qcam_ex_t();
并执行它。鉴于 if/else 语句的性质,这怎么可能发生?
注意:如果我只用一个简单的 else 语句替换 else if,就会看到相同的行为。