一位同事写下了下面的代码,我相信这是错误的。这是用于构造函数的术语是什么?
我想解释的问题给他,但不知道适当的期限,所以我找不到引用支持我的立场:
他的代码:
BSTR someString = _bstr_t(L"Hello World");
为什么我认为这是错误的:
我认为_bstr_t(L"Hello World");
调用_bstr_t
的构造函数,并创建该类型的短暂的临时变量。该临时文件将被自动删除,并且在该行代码之后(在分号顺序点之后)立即释放该文件的字符串空间。
这将使someString
指向已释放的内存。
问题:
构造函数调用的正确名词是什么?
你能指出一些引用/术语/页面来详细描述使用吗?
是否有临时_bstr_t
对象的术语?
我想我会称它为“匿名,临时变量”,但我不知道这在技术上是否准确。
(也许我在我的分析完全错误....如果是的话,我很想知道)
对于澄清:
_bstr_t is a C++ class,一般由微软用来包装它们的BSTR类型,所以它具有构造/拆解/操作等等。
BSTR
是一种typedef只是WCHAR*
,所以它没有任何逻辑。它只是一个愚蠢的指针。
谢谢,术语*“转换构造函数”*是我正在寻找。 – abelenky