首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这么写安全吗

2013-12-19 
这样写安全吗?想定义一个异常类,里面有一个记录发生异常的文件,想把这个成员变量定义成char*,在抛出异常的

这样写安全吗?
想定义一个异常类,里面有一个记录发生异常的文件,想把这个成员变量定义成char*,在抛出异常的地方定义一个异常对象,然后把__FILE__宏赋值给这个对象的成员变量。捕获异常的时候就可以看到是哪个文件发生异常。但是有点担心就是,在一个函数里面把__FILE__宏赋值给异常对象后,进入catch,会不会这个异常对象指向的文件名生命周期已经结束了?还是因为__FILE__是一个const char*,抛出异常的函数运行结束后,异常对象所指的文件名并不会受影响?

你C语言比我还菜?局部的地址__FILE__怎么能直接到函数外用呢,可以传string(__FILE__),建议用string类型定义m_pFile。这里的__FILE__不是存储在栈上吧,在函数里把他传给m_pFile,在函数外还是可以用的。
VC6测试的,好像VC6版本对C++支持不够全面。。。
哦,原谅我的盲从!Linux下试了下,好像__FILE__是指向了一个字面值。这么写安全吗

热点排行