在C++中,如何在塊的中途重命名變量?引用和宏感覺不對。如何在塊中途重命名變量?
回答
你不能。
但是你可以參考它並在不同的「名稱」下訪問它。 如果你真的不喜歡這個變量,只需從當前塊中退出,從函數返回,離開塊。
+1。 「你不能」是這個問題的唯一正確答案。 – 2010-07-05 02:54:26
您擁有的最佳選擇是創建一個新變量並將其設置爲等於舊變量,然後刪除舊變量。雖然我無法想象,你爲什麼會想向
你不能*刪除*一個可靠的。即使變量是一個指針,並且你調用* delete *,變量仍然會在這裏,儘管你會釋放一個內存塊。 – SigTerm 2010-07-05 02:43:43
當然,如果你想成爲書呆子,但任何一個C程序員都明白,當你打電話給你時,你在技術上不會刪除任何東西,只是釋放內存。對不起,我的詞彙量很大。 – jordanstephens 2010-07-05 03:25:19
我想你可以做喜歡的事,可怕:
int _internal;
#define foo _internal
foo = 3;
#undef foo
#define bar _internal
std::cout << bar;
不過,我看不出有什麼好的理由,永遠。
我應該指出,我第一次寫這個錯誤時發生錯誤的事實清楚地表明,這是不該做的事情。 – Shirik 2010-07-05 02:39:53
個人而言,我認爲你應該選擇一個名字並堅持貫穿始終。當你幾個星期之後回去閱讀你的代碼時,你會不由自主地想知道你在想什麼。如果您不喜歡在您的方法或課程結束後選擇的名稱,大多數IDE都提供了一些重構功能,您應該可以使用這些重構功能快速,完整,正確地或多或少無痛地進行更改。如果您使用相同的變量來執行多個不同的目的,那麼您應該使用更多的變量,其中一個用於這些不同的目的。
如果變量的用途在塊的中途改變,您可能想要將塊分成兩個方法/函數,並將該變量作爲參數傳遞給每個方法/函數。或者,如果塊的前半部分生成變量的值並且後半部分將其消耗,那麼讓第一個函數返回變量,第二個函數使用它。
(編輯) 另外請注意,您可以通過將局部變量裏面多餘的塊定義避開臨時名稱衝突:如..
int x()
{
int y = 0;
{
int i = /* create i */;
y = compute_y(i);
}
int z = 0;
{
int i = /* create another i */;
z = compute_z(y, i);
}
return z;
}
在此功能,我可以聲明兩倍的變量,在不同的子塊和名稱不會衝突,因爲在創建第二個i
之前,第一個i
將超出範圍。就個人而言,如果我有足夠大的功能需要這種範圍,我會將它分成多個小函數,就像我上面提到的那樣。
我與其他人在這裏 - 你爲什麼要這樣做?因爲很難想象有合理的理由。總是有可能有理性的理由提供它。
這裏有不好的反應。做你所要求的東西很容易成爲維修的噩夢。英語中有很多詞彙用於正確命名變量,並且作爲程序員,您可以自己編寫一個變量。
無論如何,這有點像從誕生之後打電話給你的女兒吉爾,然後在她十三歲生日時突然改名爲蘇西。事實上,當你的麻煩剛剛開始時會造成麻煩。
戴夫
- 1. 如何根據變量重命名列
- 2. 如何重命名通用sas變量?
- 3. 如何在Python中循環中重命名變量
- 4. 在SAS中如何重命名數據中的變量?
- 5. 如何重新命名從$ 1命名GDB的內部變量?
- 6. 重命名多個變量
- 7. 重命名變量繼承
- 8. TypeScript重命名變量
- 9. 塔塔:重命名變量
- 10. 重命名窗口變量
- 11. Emacs重命名變量
- 12. 如何在for循環中重命名類似命名的變量
- 13. 如何重命名一個尊重名稱範圍的變量?
- 14. 線程模塊的__init__中定義的變量如何重命名爲_Thread_ <變量名稱>
- 15. 批量如何重命名保存到變量中的文件?
- 16. 如何在MATLAB表中只重新命名幾個變量?
- 17. 如何在perl中重命名一個變量
- 18. 如何讓DevExpress「重命名變量」在VS 2008中工作?
- 19. 如何在整個程序中重命名特定變量?
- 20. 如何在sas中動態地重命名變量?
- 21. 如何重命名在RStudio環境中加載的變量?
- 22. 如何命名變量?
- 23. Aptana3重命名文件中的變量
- 24. 重命名SWI Prolog中的變量
- 25. 重命名dplyr中的一堆變量
- 26. 重命名子類中的變量
- 27. 重命名變量在for循環
- 28. 變量在重命名功能
- 29. 使用變量重命名列名
- 30. Python/SPSS重命名變量名稱
你爲什麼想要這樣做? – 2010-07-05 02:35:16
你想完成什麼? – Shog9 2010-07-05 02:36:04
你想要做什麼感覺不對。 – 2010-07-05 02:37:44