返回首页

您好,
请参阅下面的代码,请告诉我,我做的完全正确或有一些风险涉及什么样的风险?

XGGraphicAttribute* XGGraphicAttribute::Create()

{

    return new XGGraphicAttribute;

}

关于
BitsMax

回答

评论会员:游客 时间:2012/02/06
imgsrc=]操作符的描述,我会说你这样做是正确的。既然你返回一个对象的Create()函数表示将返回类型,你会不会在此代码不需要任何的铸造
安德烈Kraak
评论会员:游客 时间:2012/02/06
如果有任何风险,那就是函数的调用者可不删除返回的对象,创建一个内存泄漏。所以记录功能(你应该总是做)和状态,来电者是负责清理返回的对象
| Stefan_Lang:绝对是有作为新的要求没有铸造将完全返回类型返回类型声明。也许你是混淆用malloc(),返回一个void *

唯一我能想到的,你可能要改变,正赶上从构造可能的例外 - 如果这是您的create()函数的目的!例如,你可以不抛出保证,像这样的(见{A}]):


话又说回来,它可能是更好的只是让这些例外,而不是打的来电方式,目前没有生命危险,来电者从未认为测试结果值 - 如果仍然未捕获的异常,它会立即赶上开发商的关注, (希望)修复:菲利普・森
评论会员:游客 时间:2012/02/06
事实上,thnis是相反...铸造是危险的,因为它依赖的程序员,而不是编译器因此,采取的习惯从未添加一个转换,如果它不是绝对必要的,如果有必要,那么首先检查是否有可能纠正像改变严重选定的一些更合适的变量类型的代码,以避免演员