一位同事寫下了下面的代碼,我相信這是錯誤的。這是用於構造函數的術語是什麼?
我想解釋的問題給他,但不知道適當的期限,所以我找不到引用支持我的立場:
他的代碼:
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