关于VC中的类对象初始化的问题
VC中有些类是必须在声明的时候就必须用它的构造函数来初始化的。比如MFC中的CFileDialog类。可是将声明和初始化放在一步会碰到很多不方便的问题。比如下面这个例子。
char cName[1024];
f(cName, &iErr); //一个得到cName的函数
if(iErr == -1) //出错时
{
goto Func_Exit;
}
CFileDialog CFileDlg(..., cName,...);
...;
Func_Exit:
...
如果这样写的话,编译时会报错。"initialization of 'CFileDlg' is skipped by 'goto FUNC_EXIT'"
可是由于在CFileDlg中需要用到cName的值,我又无法把这个初始化操作提到前面去。如果将CFileDialog的初始化都放在else{...};中,又显的相当冗余。
如何才能回避这个问题?轻方家指教。